我想在文件中的多行中搜索特定字符串并获取找到匹配项的行。
但是,我的问题是,该文件包含一个很长的字符串,而不是单词,我想搜索这个长字符串的子序列。因此,我不能使用 pcregrep 而只能搜索 word1\nword2。因为我实际上想获取找到匹配项的行号,所以我不能只删除所有换行符...
这是我的文件的示例,我只是将匹配的字符串大写,以便您可以找到它:
要搜索的字符串:
gcbcdbfceebcfhfchaaccdgfcegffgedffaeaedcbaedhacebeeebcechbcbfeeccbdhcbfg
Run Code Online (Sandbox Code Playgroud)
要搜索的文件:
abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde
abcdeabcde***GCBCDBFCEEBCFHFCHAACCDGFCEGFFGEDFFAEAEDC
BAEDHACEBEEEBCECHBCBFEECCBDHCBFG***ggfbhbgcedabceedfa
fbaaechaabdbffbebecebaacfcfcdcggfchddcefbcbdegbbba
Run Code Online (Sandbox Code Playgroud)
你们中有人有一个简单的解决方案吗?
如果手头没有工具可以做到这一点,我只会编写一个简短的 python 脚本来做到这一点,但我想任何 bash 工具都会比这更有效......
编辑:
非常感谢您的回答,如果知道换行符的位置,它们工作得很好。
但是,我很抱歉我的问题不准确。我的问题是,我不知道文件中的字符串中是否有换行符,甚至不止一个换行符,而且,我不知道它在哪里。我通过删除无意中插入的换行符来更正我的搜索字符串。
有没有办法允许在字符串的任何位置换行?