这是我的 bash 命令
grep -rl "System.out.print" Project1/ |
xargs -I{} grep -H -n "System.out.print" {} |
cut -f-2 -d: |
sed "s/\(.*\):\(.*\)/filename is \1 and line number is \2/
我在这里要做的是,我试图遍历子文件夹并检查哪些文件包含“System.out.print”(使用 grep) 使用第二个 grep 尝试获取文件名和行号 使用 sed 命令我将这些显示到控制台。 我想从这里删除带有“XXXXX”的“System.out.print”,如何将 sed 命令传递给它? 请帮助我 谢谢
最佳答案
GNU sed 有一个就地更改文件的选项:
find Project1/ -type f | xargs sed -i 's/System\.out\.print/XXXXX/g'
顺便说一句,你的脚本可以写成:
grep -rsn 'root' /etc/ |
awk -F: '{ print "filename is", $1, "and line number is", $2 }'
关于bash - 带有 sed 的 grep 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517662/