小编gjt*_*ian的帖子

grep 管道进入 sed,替换内联;但我想 sed 打印文件名和更改的行。是否可以?

这是我的命令(故意中断):

grep FOO "/Users/gjtorikian/blah" -l | xargs sed -i '' '/FOO/{s/FOO/BAR/g; w /dev/stdout
}'
Run Code Online (Sandbox Code Playgroud)

在高层:grep用于blah目录中的FOO ;管道中的文件名(因为-l)到sed; sed执行内联替换 ( -i '') 并仅将更改的项打印到/dev/stdout

如果我要省略-l和管道,我会从grep

/Users/gjtorikian/blah/baz.cs:1:FOO
/Users/gjtorikian/blah/bar.js:1:FOO
Run Code Online (Sandbox Code Playgroud)

我想要的是sed执行内联替换,然后显示我替换的文件和术语;例如:

/Users/gjtorikian/blah/baz.cs:1:BAR
/Users/gjtorikian/blah/bar.js:1:BAR
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?如果重要,我宁愿只保留它grep/ sed。我必须做第二次grep以后sed

grep pipe sed

7
推荐指数
1
解决办法
5万
查看次数

标签 统计

grep ×1

pipe ×1

sed ×1