macos – 为什么sed只接收多个文件作为输入时才处理一个文件?
发布时间:2020-12-14 00:01:51 所属栏目:Linux 来源:网络整理
导读:我想用sed操作六个CSV文件 sed -i -e "1d" 1.csv 2.csv 3.csv 4.csv 5.csv 6.csv 要么 sed -i -e "1d" *csv 但是当运行任何这些命令时,仅修改1.csv.但是,sed将2-6.csv的原始文件(备份文件的时间戳保持不变)重命名为2.csv-e,依此类推,并创建一个新文件2.csv,
我想用sed操作六个CSV文件
sed -i -e "1d" 1.csv 2.csv 3.csv 4.csv 5.csv 6.csv 要么 sed -i -e "1d" *csv 但是当运行任何这些命令时,仅修改1.csv.但是,sed将2-6.csv的原始文件(备份文件的时间戳保持不变)重命名为2.csv-e,依此类推,并创建一个新文件2.csv,但这个新文件与2.csv-相同e(和diff:ing 2.csv和2.csv-e不返回差异)(diffing 1.csv和1.csv-e列出了一些变化). 如何让sed接受多个文件作为输入? 这是在OS X上. 解决方法
格伦的答案是大多数人最好和理想的答案. GNU Parallel还有一个替代方案,它看起来更像你试图在你的问题中提出的命令,并且并行运行6份sed(或你想要的任何其他东西):
parallel sed -i -e 1d ::: *.csv 要非常小心,因为它可以非常快速地并行地修改很多东西.当你熟悉它时,你应该添加两个标志,即–dry-run,这样它什么都不做,只显示它会做什么,-k使得输出按顺序排列.因此,更安全的运行方式如下 – 包括对我们处理的文件更具选择性: parallel --dry-run -k sed -i -e 1d ::: {1..6}.csv 产量 sed -i -e 1d 1.csv sed -i -e 1d 2.csv sed -i -e 1d 3.csv sed -i -e 1d 4.csv sed -i -e 1d 5.csv sed -i -e 1d 6.csv 使用自制软件最容易在macOS上安装GNU Parallel: brew install parallel (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |