繁体   English   中英

文本的Sed / Awk操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM