Awk 将第一行添加到第二行,但用制表符分隔

Awk 将第一行添加到第二行,但用制表符分隔,awk,grep,Awk,Grep,我正在使用grep-B2“average/return”/home/me/Desktop/file, 如何在第一行的位置获得所需的一行输出 是否添加到第二行,但用制表符与第二行分隔 some words here average / return 1,2 4 5,6 -- other words here average / return 4,3 7 9,4 -- 期望输出: some words here average / return 1,2 4 5,6 -- other wo

我正在使用grep-B2“average/return”/home/me/Desktop/file, 如何在第一行的位置获得所需的一行输出 是否添加到第二行,但用制表符与第二行分隔

some words here
average / return 1,2 4 5,6 
--
other words here
average / return 4,3 7 9,4
--
期望输出:

some words here     average / return 1,2 4 5,6
--
other words here    average / return 4,3 7 9,4
--

您可以尝试将输出管道化到
tr
命令,如下所示:

grep -B2 "average / return" /home/me/Desktop/file | tr '\n' '\t'

您可以尝试将输出管道化到
tr
命令,如下所示:

grep -B2 "average / return" /home/me/Desktop/file | tr '\n' '\t'

您可以尝试将输出管道化到
tr
命令,如下所示:

grep -B2 "average / return" /home/me/Desktop/file | tr '\n' '\t'

您可以尝试将输出管道化到
tr
命令,如下所示:

grep -B2 "average / return" /home/me/Desktop/file | tr '\n' '\t'

您可以通过管道将结果传送到
sed

grep ... | sed '/^--$/!{N;s/\n/    /g}'
说明:

sed命令适用于不包含分隔符的行:
/^--$/。在下面的块中,然后使用
N
从输入中获取另一行并将其附加到模式缓冲区。最后,使用替换命令将换行符替换为4个空格:
s/\n//g

包含分隔符的行只需打印即可。(请注意,如果您不希望grep命令包含在输出中,可以将
--no group separator
传递给grep命令。谢谢@fedorqui)

输出:

这里的一些单词平均/返回1,2 4 5,6
--
这里的其他词平均/回报4,37,9,4
--

您可以通过管道将结果传送到
sed

grep ... | sed '/^--$/!{N;s/\n/    /g}'
说明:

sed命令适用于不包含分隔符的行:
/^--$/。在下面的块中,然后使用
N
从输入中获取另一行并将其附加到模式缓冲区。最后,使用替换命令将换行符替换为4个空格:
s/\n//g

包含分隔符的行只需打印即可。(请注意,如果您不希望grep命令包含在输出中,可以将
--no group separator
传递给grep命令。谢谢@fedorqui)

输出:

这里的一些单词平均/返回1,2 4 5,6
--
这里的其他词平均/回报4,37,9,4
--

您可以通过管道将结果传送到
sed

grep ... | sed '/^--$/!{N;s/\n/    /g}'
说明:

sed命令适用于不包含分隔符的行:
/^--$/。在下面的块中,然后使用
N
从输入中获取另一行并将其附加到模式缓冲区。最后,使用替换命令将换行符替换为4个空格:
s/\n//g

包含分隔符的行只需打印即可。(请注意,如果您不希望grep命令包含在输出中,可以将
--no group separator
传递给grep命令。谢谢@fedorqui)

输出:

这里的一些单词平均/返回1,2 4 5,6
--
这里的其他词平均/回报4,37,9,4
--

您可以通过管道将结果传送到
sed

grep ... | sed '/^--$/!{N;s/\n/    /g}'
说明:

sed命令适用于不包含分隔符的行:
/^--$/。在下面的块中,然后使用
N
从输入中获取另一行并将其附加到模式缓冲区。最后,使用替换命令将换行符替换为4个空格:
s/\n//g

包含分隔符的行只需打印即可。(请注意,如果您不希望grep命令包含在输出中,可以将
--no group separator
传递给grep命令。谢谢@fedorqui)

输出:

这里的一些单词平均/返回1,2 4 5,6
--
这里的其他词平均/回报4,37,9,4
--

保持简单,丢失grep和pipe以及其他命令,只需在原始文件上使用awk即可:

awk '/average \/ return/{print prev "\t" $0} {prev=$0}' file
如果您觉得有用,可以在输出行之间添加包含
--
的行:

awk '/average \/ return/{print prev "\t" $0 "\n--" } {prev=$0}' file
e、 g


保持简单,丢失grep和pipe以及其他命令,只需在原始文件上使用awk即可:

awk '/average \/ return/{print prev "\t" $0} {prev=$0}' file
如果您觉得有用,可以在输出行之间添加包含
--
的行:

awk '/average \/ return/{print prev "\t" $0 "\n--" } {prev=$0}' file
e、 g


保持简单,丢失grep和pipe以及其他命令,只需在原始文件上使用awk即可:

awk '/average \/ return/{print prev "\t" $0} {prev=$0}' file
如果您觉得有用,可以在输出行之间添加包含
--
的行:

awk '/average \/ return/{print prev "\t" $0 "\n--" } {prev=$0}' file
e、 g


保持简单,丢失grep和pipe以及其他命令,只需在原始文件上使用awk即可:

awk '/average \/ return/{print prev "\t" $0} {prev=$0}' file
如果您觉得有用,可以在输出行之间添加包含
--
的行:

awk '/average \/ return/{print prev "\t" $0 "\n--" } {prev=$0}' file
e、 g


因此,该选项卡位于此处和averageNote之间。注意,如果您说
--没有组分隔符
,则在匹配之间不会有这些
--
。处理该输出时可能会出现这种情况。因此,选项卡位于此处和averageNote之间。注意,如果您说
--没有组分隔符
,则在匹配之间不会有这些
--
。处理该输出时可能会出现这种情况。因此,选项卡位于此处和averageNote之间。注意,如果您说
--没有组分隔符
,则在匹配之间不会有这些
--
。处理该输出时可能会出现这种情况。因此,选项卡位于此处和averageNote之间。注意,如果您说
--没有组分隔符
,则在匹配之间不会有这些
--
。在处理输出时,这可能会出现。谢谢。我只做了很小的改变sed'/^--$/!{N;s/\N/\t/g}来获取一个标签。谢谢。我只做了很小的改变sed'/^--$/!{N;s/\N/\t/g}来获取一个标签。谢谢。我只做了很小的改变sed'/^--$/!{N;s/\N/\t/g}来获取一个标签。谢谢。我只做了很小的改变sed'/^--$/!{N;s/\N/\t/g}来获取一个制表符。