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

替换文本文件unix中的整个列,unix,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 但是只有几千行。@试试: awk '{$NF="U";print}

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

@试试:

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

只需将每行的最后一个字段更改为“U”,然后打印即可。

Perl的工作原理:

perl-alne“$F[7]='U';打印(连接“”,@F);”characterFile.txt>characterFile2.txt

将结果放入characterFile2.txt,以便保留原始文件


这实际上会更改第8列(假设按空格分隔),因此可以有8列以上,并且只会更改第8列。当第7列是最后一列时,如果少于8列,可能会呕吐。…

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
sed 's/.$/U/' inputfile
重定向到tmp文件,并在您的
sed
不支持
-i
标志时将其移动:

sed -i 's/.$/U/' inputfile
sed -i 's/.$/U/' inputfile