使用awk/sed更改特定列的值
我有一个52列的文件。我想将第11列从0替换为1。我的文件中的所有数据都以“|”分隔。我试过下面的命令使用awk/sed更改特定列的值,awk,sed,Awk,Sed,我有一个52列的文件。我想将第11列从0替换为1。我的文件中的所有数据都以“|”分隔。我试过下面的命令 awk -F \| '{$11=1; print}' input_file.txt 我已将第11列替换为上述命令。但该文件的输出将分隔符更改为“空格”。我不能仅仅从outfile中删除空格,因为几乎没有列也有有效的空格。在awk脚本的BEGIN子句中,将字段分隔符设置为与-F标志设置的FS相同,否则它将设置为的默认值。 将设置为与awk脚本的BEGIN子句中的FS(使用-F标志设置的字段分
awk -F \| '{$11=1; print}' input_file.txt
我已将第11列替换为上述命令。但该文件的输出将分隔符更改为“空格”。我不能仅仅从outfile中删除空格,因为几乎没有列也有有效的空格。在awk
脚本的BEGIN
子句中,将字段分隔符设置为与-F
标志设置的FS
相同,否则它将设置为的默认值。
将设置为与awk
脚本的BEGIN
子句中的FS
(使用-F
标志设置的字段分隔符)相同,否则设置为默认值“”
通过此文件筛选您的文件
通过此筛选文件。您可以尝试使用此sed:
sed -E 's/(([^|]*\|){10})[^|]*(.*)/\11\3/' infile
如果只想从0更改为1
sed -E 's/(([^|]*\|){10})0(.*)/\11\3/' infile
您可以尝试使用此sed:
sed -E 's/(([^|]*\|){10})[^|]*(.*)/\11\3/' infile
如果只想从0更改为1
sed -E 's/(([^|]*\|){10})0(.*)/\11\3/' infile