繁体   English   中英

我想 pipe grep output 到 Z177544AA797AF6F322F8CAA5E80EF 输入

[英]I want to pipe grep output to sed for input

我正在尝试 pipe grep 的 output 到 Z177544AA797AF6F322F8CAA 仅编辑特定文件8 我不希望 sed 在不更改的情况下编辑某些内容。 (更改修改日期。)

我正在用 grep 搜索并用 sed 写作。 而已

我要改变的是破折号,不是普通类型,是特殊类型。 “-“ 是正常的。 “-”不正常


我目前拥有的代码:

sed -i 's/– foobar/- foobar/g' * ; perl-rename 's/– foobar/- foobar/' *'– foobar'*

很抱歉给您添麻烦了,我没有经验。

你确定你想要达到的目标吗? 让我给你解释一下:

grep "string_in_file" <filelist> | sed <sed_script>

这首先显示了“string_in_file”,前面是文件名。
如果您在此启动sed ,那么它只会在屏幕上显示sed -script 的结果,但不会更改文件本身。 为此,您需要以下内容:

grep -l "string_in_file" <filelist> | sed <sed_script_on_file>

grep -l显示一些文件名,新的 sed_script_on_file 需要是一个脚本,读取文件并更改它。

如果您的文件名不包含换行符,这可能是您尝试做的事情:

grep -l -- 'old' * | xargs sed -i 's/old/new/'

谢谢大家的帮助,很抱歉没有快速回复

经过一番摆弄命令后,我明白了:

grep -l 'old' * | xargs -d '\n' sed -i 's/old/new/'

这应该只触及包含old文件并保留所有其他文件的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM