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