如何在文件中grep“\ n”

时间:2014-03-26 11:30:59

标签: linux grep

示例文件: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

作为输出。

6 个答案:

答案 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

  • -z-将所有\ n更改为零字节
  • -o-仅显示差异(因为整个文件现在对于grep来说是一行)
  • -P-perl正则表达式

在\ n和之前和之后的行中查找