替换文本文件unix中的整个列

时间:2017-03-14 15:27:37

标签: unix

是否有一个简单的unix命令,如awk,它允许我用每一行用相同的字符串替换整个列。现在,文本文件的第8列中有一个随机的单个数字。我需要在每一行上用原子元素符号(一个或两个字符)替换它。它与整个文件的字符相同。

因此:

1 2 3 a b c x 4

1 2 3 a b c x 7

1 2 3 a b c x 2

应该是

1 2 3 a b c x U

1 2 3 a b c x U

1 2 3 a b c x U

但有几千行。

4 个答案:

答案 0 :(得分:0)

@try:

awk '{$NF="U";print}'  Input_file

OR

awk '{sub(/.*/,"U",$NF);print}'   Input_file

只需将每行的最后一个字段更改为" U"然后打印出来。

答案 1 :(得分:0)

Perl工作:

perl -alne "$F[7]= 'U'; print (join ' ', @F) ;" characterFile.txt > characterFile2.txt

将您的结果放在characterFile2.txt中,这样您就可以保留原始文件了。

这实际上改变了第8列(假设用空格划分),所以你可以拥有8列以上,它只会改变第8列。如果你的列少于8列,可能是barf ....

答案 2 :(得分:0)

awk '{sub(/x ./,"x U")}1' file
1 2 3 a b c x U

1 2 3 a b c x U

1 2 3 a b c x U

答案 3 :(得分:0)

当第7列是最后一列时:

sed 's/.$/U/' inputfile

重定向到tmp文件,并在sed不支持-i标记时移动它:

sed -i 's/.$/U/' inputfile
相关问题