是否有一个简单的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
但有几千行。
答案 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