[英]Sed/Awk manipulation of a text
我需要更改文件的最后一列:
dir_/agra_2008_04_07_a 6 scd679 Voice of male
dir_/agra_2008_04_07_a 7 scd680 voice off
dir_/agra_2007_10_01_a 2 scd502 voice over
dir_/agra_2007_10_08_a 2 scd502 voice over
对其他:
dir_/agra_2008_04_07_a 6 scd679 Voice_of_male
dir_/agra_2008_04_07_a 7 scd680 voice_off
dir_/agra_2007_10_01_a 2 scd502 voice_over
dir_/agra_2007_10_08_a 2 scd502 voice_over
在最后一列添加下划线! 任何人? 谢谢!
一个简单的sed
解决方案:
sed 's/ /_/8g' file
它用下划线替换空格,但忽略前7次出现,因此从第8个开始到结尾( g
)。 如果您的输出在最后一列之前始终具有相同数量的空格,那么它将起作用。
只要您有双倍的空格作为字段分隔符,就可以使用此awk
awk -F" " '{gsub(/ /,"_",$NF)}1' OFS=" " file
dir_/agra_2008_04_07_a 6 scd679 Voice_of_male
dir_/agra_2008_04_07_a 7 scd680 voice_off
dir_/agra_2007_10_01_a 2 scd502 voice_over
dir_/agra_2007_10_08_a 2 scd502 voice_over
它用_
替换最后提交的空间
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.