我有一个52列的文件。我想将第11列从0替换为1。我文件中的所有数据均为“ |”分开。我尝试了以下命令。
awk -F \| '{$11=1; print}' input_file.txt
我用上面的命令替换了第11列。但是此文件的输出将分隔符更改为“ space”。我不能仅仅从输出文件中删除空间,因为很少有列也具有有效空间。
答案 0 :(得分:3)
在{{1}的FS
子句中,将OFS
(output field seperator)设置为与-F
(用BEGIN
标志设置的字段分隔符)相同}脚本,否则将其设置为默认的awk
" "
答案 1 :(得分:0)
sed -re 's/(^\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*\|)([^|]*)\|(.*)/\11|\3/'
通过此过滤文件。
答案 2 :(得分:0)
您可以尝试使用此sed:
sed -E 's/(([^|]*\|){10})[^|]*(.*)/\11\3/' infile
如果您只想从0更改为1
sed -E 's/(([^|]*\|){10})0(.*)/\11\3/' infile