【发布时间】:2018-05-30 22:54:32
【问题描述】:
我正在寻找一个 perl/awk/sed 命令来自动增加第 7 列中的数字
文件 knownfile.txt 中的示例行:
该文件具有格式和 7 列。
today is a great day and it
is also an amazing day tomorrow now
blahblah foo today build number is 5928
我想保留所有格式,只需将 5928 替换为 5929 并保存文件
我试过了:
awk '/blahblah/{ $7++; print $0 }' filename > tmp && mv tmp filename
它增加了数字,我认为它保留了格式,但它只将编辑的行打印到文件中。
【问题讨论】:
-
发布更多的示例输入和预期输出行并格式化。
-
数字是否总是在同一个地方,即在行尾?
-
汤姆,是的,我要替换的数字总是在行尾。
-
仅供参考,您对字段执行的任何操作(例如上面的 $7)都会更改格式,因为更改字段会告诉 awk 使用 OFS 值(默认为单个空格)重新编译记录($0)字段,因此默认情况下,所有连续空白链都将替换为单个空白字符。为避免这种情况,您需要将记录作为一个整体进行操作,而不是记录中的任何 1 个字段。