awk多行和打印结果

awk多行和打印结果,awk,ksh,Awk,Ksh,我想打印一些特定部分的结果与awk,在多个模式选择 我拥有的是(filetest): 我希望: 1 - B : 2 所以,只有第一行的结果,然后是整个第二行。 破折号是我加的 我有这个: awk -F': ' '$1 ~ /A|B/ { printf "%s", $2 "-" }' filetest 结果: 1 -2 - 1 - A 2 - B 我不能得到完整的第二行,而不能只显示第一行的结果 awk -F': ' '$1 ~ /A|B/ { printf "%s",

我想打印一些特定部分的结果与awk,在多个模式选择

我拥有的是(filetest):

我希望:

1 - B : 2
所以,只有第一行的结果,然后是整个第二行。 破折号是我加的

我有这个:

awk -F': ' '$1 ~ /A|B/ { printf "%s", $2 "-" }' filetest
结果:

1 -2 -
1 -    A    2 -    B 
我不能得到完整的第二行,而不能只显示第一行的结果

awk -F': ' '$1 ~ /A|B/ { printf "%s", $2 "$1" }' filetest
结果:

1 -2 -
1 -    A    2 -    B 
是否有任何方法可以打印在同一行中,正好是awk所需的列/行? 在我的例子中,
R1C2-R2C1:R2C2


谢谢

这将满足您的期望:

$ awk -F: 'NR%2 {printf "%s - ", $2; next}1' filetest
1 - B : 2
awk -F: '/^A/{printf "%s -", $2}/^B/{print}' filetest

这将满足您的期望:

awk -F: '/^A/{printf "%s -", $2}/^B/{print}' filetest
你可以试试这个

awk -F:  'NR%2==1{a=$2; } NR%2==0{print a " - " $0}' file
输出

  1 - B : 2
你可以试试这个

awk -F:  'NR%2==1{a=$2; } NR%2==0{print a " - " $0}' file
输出

  1 - B : 2
我可能会同意,因为它清晰、简单,并且不与您的数据值相耦合,只是为了展示另一种方法:

$ awk '{printf "%s", (NR%2 ? $3 " - " : $0 ORS)}' file
1 - B    : 2
我可能会同意,因为它清晰、简单,并且不与您的数据值相耦合,只是为了展示另一种方法:

$ awk '{printf "%s", (NR%2 ? $3 " - " : $0 ORS)}' file
1 - B    : 2
在gnu awk上试用

awk -F':' 'NR==1{s=$2;next}{FS="";s=s" - "$0;print s}' filetest
在gnu awk上试用

awk -F':' 'NR==1{s=$2;next}{FS="";s=s" - "$0;print s}' filetest

记录之间是否总是有多余的空行?或者是复制粘贴问题?可能是复制粘贴问题。行与行之间没有空格。记录之间是否总是有多余的空行?或者是复制粘贴问题?可能是复制粘贴问题,是的。两行之间没有空格。