簡體   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