Bash 在两个角色之间获得一切

Bash 在两个角色之间获得一切,bash,awk,sed,grep,Bash,Awk,Sed,Grep,我想搜索两个连续的*字符并保存它们之间的所有内容,包括带*的第一行。 例子: 输入: 产出1: A*1 A B 产出2: B*4 C 产出3: Y*5 D 您可以使用: awk '/\*/ { n++; } { print >> "output" n }' inputfile 这将写入三个文件,output1、output2和output3,其中包含问题中的内容。包含*的行之前的任何文本都将进入输出 您可以使用: awk '/\*/ { n++; } { print >

我想搜索两个连续的*字符并保存它们之间的所有内容,包括带*的第一行。 例子: 输入:

产出1:

A*1
A
B
产出2:

B*4
C
产出3:

Y*5
D
您可以使用:

awk '/\*/ { n++; } { print >> "output" n }' inputfile
这将写入三个文件,
output1
output2
output3
,其中包含问题中的内容。包含
*
的行之前的任何文本都将进入
输出

您可以使用:

awk '/\*/ { n++; } { print >> "output" n }' inputfile
awk 'BEGIN { RS="your delimiter"} {print $0}'
这将写入三个文件,
output1
output2
output3
,其中包含问题中的内容。包含
*
的行之前的任何文本都将进入
输出

您可以使用:

awk '/\*/ { n++; } { print >> "output" n }' inputfile
awk 'BEGIN { RS="your delimiter"} {print $0}'
这将写入三个文件,
output1
output2
output3
,其中包含问题中的内容。包含
*
的行之前的任何文本都将进入
输出

您可以使用:

awk '/\*/ { n++; } { print >> "output" n }' inputfile
awk 'BEGIN { RS="your delimiter"} {print $0}'
这将写入三个文件,
output1
output2
output3
,其中包含问题中的内容。包含
*
的行之前的任何文本都将进入
输出

awk 'BEGIN { RS="your delimiter"} {print $0}'
RS是记录分隔符,在开始时定义它可以让您根据需要分割输入

使用NR打印当前记录编号

awk 'BEGIN { RS="\""} {print "output " NR ":\n" $0}'
RS是记录分隔符,在开始时定义它可以让您根据需要分割输入

使用NR打印当前记录编号

awk 'BEGIN { RS="\""} {print "output " NR ":\n" $0}'
RS是记录分隔符,在开始时定义它可以让您根据需要分割输入

使用NR打印当前记录编号

awk 'BEGIN { RS="\""} {print "output " NR ":\n" $0}'
RS是记录分隔符,在开始时定义它可以让您根据需要分割输入

使用NR打印当前记录编号

awk 'BEGIN { RS="\""} {print "output " NR ":\n" $0}'

这可能适合您:

csplit -zf 'output' file '/\*/' '{*}'

这将拆分
*
上的文件(
/\*/
),并将结果文件命名为
outputn
,其中
nn
从00开始。空行文件不会输出,并且该过程会重复到文件结尾(
{*}
)。

这可能适用于您:

csplit -zf 'output' file '/\*/' '{*}'

这将拆分
*
上的文件(
/\*/
),并将结果文件命名为
outputn
,其中
nn
从00开始。空行文件不会输出,并且该过程会重复到文件结尾(
{*}
)。

这可能适用于您:

csplit -zf 'output' file '/\*/' '{*}'

这将拆分
*
上的文件(
/\*/
),并将结果文件命名为
outputn
,其中
nn
从00开始。空行文件不会输出,并且该过程会重复到文件结尾(
{*}
)。

这可能适用于您:

csplit -zf 'output' file '/\*/' '{*}'

这将拆分
*
上的文件(
/\*/
),并将结果文件命名为
outputn
,其中
nn
从00开始。不输出空行文件,该过程将重复到文件结尾(
{*}
)。

谢谢!如何定义打印行数的条件。e、 g如果行数大于3,则在每个输出上打印。例如,如果行数大于3,则在每个输出上打印。awk'BEGIN{RS=“\”“}NR>3{print”output“NR”:\n“$0}”谢谢!如何定义打印行数的条件。例如,如果行数大于3,则在每个输出上打印。awk'BEGIN{RS=“\”“}NR>3{print”output“NR”:\n“$0}”谢谢!如何定义打印行数的条件。e、 g如果行数大于3,则在每个输出上打印。例如,如果行数大于3,则在每个输出上打印。awk'BEGIN{RS=“\”“}NR>3{print”output“NR”:\n“$0}”谢谢!如何定义打印行数的条件。例如,如果行数大于3,则在每个输出上打印。awk'BEGIN{RS=“\”“}NR>3{print”output“NR”:\n“$0}”谢谢!如何定义打印行数的条件。e、 g如果行数大于3,则打印每个输出。@ahb65您是说您的示例中不需要output2和output3,因为它们少于3行?@ahb65有一些建议,可以根据它们的行数删除文件!如何定义打印行数的条件。e、 g如果行数大于3,则打印每个输出。@ahb65您是说您的示例中不需要output2和output3,因为它们少于3行?@ahb65有一些建议,可以根据它们的行数删除文件!如何定义打印行数的条件。e、 g如果行数大于3,则打印每个输出。@ahb65您是说您的示例中不需要output2和output3,因为它们少于3行?@ahb65有一些建议,可以根据它们的行数删除文件!如何定义打印行数的条件。e、 g如果行数大于3,则打印每个输出。@ahb65您是说您的示例中不需要output2和output3,因为它们少于3行吗?@ahb65有一些建议,可以根据它们的行数删除文件