awk BEGIN{print "result1 result2 result3"} 'BEGIN{RS=","}{$1=$1}1' input.txt
result1 result2 result3
abc1 def1 ghi1 lmn1 opq1 rst1 abc2 def2 ghi2 lmn2 opq2 rst2
以上awk打印单行中的所有值,需要在不同的行中打印输出。 abc1 def1 ghi1 lmn1 opq1 rst1在一行中,abc2 def2 ghi2 lmn2 opq2 rst2在另一行中。每行的单词数不固定(可能是3个单词或超过3个单词)
input.txt中:
abc1
def1
ghi1 lmn1 opq1 rst1
abc2
def2
ghi2 lmn2 opq2 rst2
预期产出:
result1 result2 result3
abc1 def1 ghi1 lmn1 opq1 rst1
abc2 def2 ghi2 lmn2 opq2 rst2
答案 0 :(得分:1)
如果您的记录被一个或多个空行分隔,则可以执行此操作
$ awk -v RS= 'BEGIN {print "result1","result2","result3"}
{$1=$1}1' file | column -t
result1 result2 result3
abc1 def1 ghi1
abc2 def2 ghi2
答案 1 :(得分:0)
编辑: 由于OP已更改了Input_file,因此也在此更改代码。
awk '
BEGIN{
print "result1","result2","result3"}
NF{
count++;val=val?val OFS $0:$0}
NF && count==3{
print val;
val=""}
END{
if(val){
print val}
}' OFS="\t" Input_file
输出如下。
result1 result2 result3
abc1 def1 ghi1 lmn1 opq1 rst1
abc2 def2 ghi2 lmn2 opq2 rst2
以下也可以帮到你。
echo "result1 result2 result3";xargs -n 3 < Input_file | column -t
答案 2 :(得分:0)
Python 3.6.5