我的脚本文件包含以下内容:
grep -i apple basket.*
grep -i apple basket.*
grep -i lion zoo.*
grep -i lion zoo.*
我想要以下内容:
echo "Finding apple in basket.*"
grep -i apple basket.*
echo "Finding lion in zoo.*"
grep -i lion zoo.*
本质上,我想在我的脚本文件中找到重复项,捕获第一次出现的重复项,然后仅将第一次出现的项转换为文本。
这可能吗?如果可以,我该如何实现这一目标?
最佳答案
使用 GNU sed:
sed -E 's/grep -i //; s/(.*) (.*)/echo "Finding \1 in \2"/; N' file
或
sed -E 's/grep -i (.*) (.*)/echo "Finding \1 in \2"/; N' file
N: append the next line of input into the pattern space
输出:
echo "Finding apple in basket.*" grep -i apple basket.* echo "Finding lion in zoo.*" grep -i lion zoo.*
关于regex - 如何找到第一次出现的重复并将其转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658177/