如何批量修改文件:给每行首个数字字段减1000?
批量修改文件首个字段的快速命令
可以用awk命令快速实现这个需求,它专门用来处理文本的字段操作,写法简洁高效:
生成新文件(推荐)
执行以下命令,将处理后的内容保存到新文件中,避免误改原文件:
awk '{ $1 = $1 - 1000; print }' input.txt > output.txt
$1指代每行的第一个字段,$1 - 1000完成数值减1000的计算后,重新赋值给第一个字段print输出修改后的整行内容- 把
input.txt替换成你的实际源文件名,output.txt是处理后的目标文件名
原地修改原文件(可选)
如果需要直接修改原文件,可以借助sponge工具(需先安装moreutils软件包):
awk '{ $1 = $1 - 1000; print }' input.txt | sponge input.txt
sponge会先完整读取所有处理后的内容,再写入原文件,避免边读边写导致的文件损坏问题。
如果系统没有awk,也可以用sed结合bc实现,不过写法稍复杂:
sed -E 's/^([0-9]+)/echo \1-1000 | bc/e' input.txt > output.txt
内容的提问来源于stack exchange,提问作者Hab
相关产品推荐
相关产品推荐

