Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在awk命令中使用“\n”作为字段分隔符_Linux_Sed_Awk_Grep - Fatal编程技术网

Linux 在awk命令中使用“\n”作为字段分隔符

Linux 在awk命令中使用“\n”作为字段分隔符,linux,sed,awk,grep,Linux,Sed,Awk,Grep,我有多行,我需要选择其中一行,我已经使用grep找到了所需的行, 但是现在我只想要结果的第一行。 我如何使用、grep、awk、sed等实现它 使用grep我得到了o/p grep这是s file.txt 现在我需要这首歌的第一行。 如何使用“\n”作为字段分隔符。打印与此匹配的第一行是s并用awk退出: 但是,GNU grep有-m选项,该选项在给定的匹配数下停止: $ grep -Fm 1 'This is s' file This is second line. 注意,-F用于固定字符串

我有多行,我需要选择其中一行,我已经使用grep找到了所需的行, 但是现在我只想要结果的第一行。 我如何使用、grep、awk、sed等实现它

使用grep我得到了o/p grep这是s file.txt

现在我需要这首歌的第一行。
如何使用“\n”作为字段分隔符。

打印与此匹配的第一行是s并用awk退出:

但是,GNU grep有-m选项,该选项在给定的匹配数下停止:

$ grep -Fm 1 'This is s' file
This is second line.
注意,-F用于固定字符串匹配,而不是正则表达式

对于sed的完整性,您可以:

$ sed '/This is s/!d;q' file
This is second line.

然而,这个例子似乎有点奇怪,因为您可以只使用grep“second”文件

是的,我知道我可以做到这一点,但实际上我的问题是,有没有一种方法,可以使用,awk,sed或grep标记行。现在我们知道有一个像这样的字符串是s,但是如果我不知道,我需要第一行怎么办。所有3个例子都只针对给定的模式找到第一个匹配。默认情况下,awk按换行符拆分记录。据我所知,我已经回答了这个问题,如果不是这样的话,请编辑这个问题,以明确你想要的输入和期望的输出示例。谢谢sudo,:这只是一个示例,我创建它是为了解释我的问题。我想我没能正确地解释这个问题。你能告诉我,现在我怎样才能从那里拿到第二条线路吗。如果我不知道这些行的内容。因为我试过了,但没能完全理解。好的,我明白了,:awk默认按换行分隔记录,谢谢你永远不需要grep和awk。你所做的一切都可以在awk中完成。请注意,您发布的问题和您接受的答案与\n分隔的字段完全无关,因此您的主题行具有误导性。
$ awk '/This is s/{print $0; exit}'
This is second line.
$ grep -Fm 1 'This is s' file
This is second line.
$ sed '/This is s/!d;q' file
This is second line.