使用shell更新文件中指定列下的值

时间:2016-04-21 07:36:36

标签: bash shell unix awk

我有一个以下格式的文本文件:

# this is the comment
# And this is also a comment

FIELD1
COL11      COL12      COL13      
5           10          15       

FIELD2
COL21      COL22       COL23      COL24     
12           34         45          55

.......
.......

我想将COL24(55)下提到的值更新为其他值,例如100.我可以使用以下shell读取该值:

grep -A 1 COL21 /Dir/To/File/filename.txt  | sed -e '1 d' | awk -F ' ' '{print $4}

但我们如何更新价值?

1 个答案:

答案 0 :(得分:2)

您可以使用此awk命令:

awk '/FIELD2/{r=NR+2} NR==r{$4=100} 1' OFS='\t' file