我有一个名为 abc.csv 的文件,其格式为:
aa,size:12
bb,size:13
cc,size:3
我想删除 size: ,文件就会变成这样:
aa,12
bb,13
cc,3
谁能告诉我如何使用 shell 脚本来执行此任务?
答案1
您可以sed
轻松地使用此任务:
sed -i -- 's/size://' abc.csv
s/size://
是一个简单的正则表达式,表示替换size:
为<blank>
。
答案2
下面是一个有用的替代命令,适用于 sed 版本不支持该-i
标志的 Unix 用户(例如 Solaris,以及sed
默认情况下随 BSD 附带的 OS X)。
sed 's/size://' abc.csv > tmpfile; mv tmpfile abc.csv
g
在您的特定示例中,不需要 sed 命令末尾的选项,因为“size:”每行不会出现多次。
编辑: 对于较小的文件,您还可以将更新的内容存储在变量中,以避免创建不必要的临时文件:
new="$(sed 's/size://' abc.csv)"; echo "$new" > abc.csv
这个方法也将允许能力"$new"
在覆盖原始文件之前将变量(更新的文件)回显到 STDOUT 以进行完整性检查。