示例文件:abc.ksh
echo "This is a sample file." >> mno.txt
echo "\nThis line has new line char." >> mno.txt
我想要
echo "\nThis line has new line char." >> mno.txt
作为输出。
答案 0 :(得分:13)
使用-F
匹配固定字符串:
$ grep -F "\n" file
echo "\nThis line has new line char." >> mno.txt
来自man grep
:
-F, - 固定字符串
将PATTERN解释为固定字符串列表,以换行符分隔, 其中任何一个都要匹配。 (-F由POSIX指定。)
答案 1 :(得分:3)
只需用另一个反斜杠转义反斜杠并将正则表达式放在单引号中,这样shell就会将它传递给grep而不处理反斜杠本身:
grep '\\n' abc.ksh
答案 2 :(得分:3)
最简单的方法是使用REGEX:
grep "$" filename # this will match all lines ending with "\n" (often all lines)
grep "PATTERN$" # this will match all lines ending with "PATTERN\n"
在REGEX语言中,$
表示EOL(行尾),因此它通常与"\n"
匹配(因为行尾非常常见)。
警告:请小心使用支持REGEX的grep
版本。
答案 3 :(得分:1)
您可以尝试使用另一个反斜杠转义反斜杠:
grep '\\n' xyz.ksh
答案 4 :(得分:0)
正则表达式模式搜索
grep -P '\n' mno.txt
答案 5 :(得分:0)
grep -zoP '[^\n]*\n[^\n]*' file
在\ n和之前和之后的行中查找