我的情况是:
我有一个很长的文本字符串,其中包含特殊字符,它出现在各种文件的长行中。包含该字符串的文件遍布整个文件系统 (Linux)。该字符串可能位于它出现的文件中的不同行号上,但每个文件出现一次。但是,该字符串包含一个特定的模式,我可以键入它来识别整个字符串。
我知道如何通过使用 GREP -lir mystringprefix /path 键入字符串的“前缀”来查找包含该字符串的文件的名称。
我知道如何使用 grep -n "prefix" file.name | 使用 GREP 和 SED 确定文件中字符串的行号 sed -n "s/^([0-9] )[:]. /\1/p”。
我知道如何使用 SED 使用 sed -i xd /path/file 删除文件中包含感兴趣字符串的行(x 是要删除的行号)。
我的问题是如何将所有这些放在一起以确定哪些文件包含该模式,将名称传递给 GREP 以确定文件中的行号,然后将名称和行号都传递给 SED 以删除该行?
我需要这样做,以便从文件系统中的某个位置开始,然后递归搜索/删除它。
谢谢你。