我试图处理一个以制表符分隔的表,其中一些单元格有换行符。表格是从PDF表格中自动提取出来的,如下所示:
1 UNITED STATES OF 3797
AMERICA
2 CANADA 3855
3 ISLAMIC REPUBLIC 636
OF IRAN
其中每个文本行中的左侧列仅在该行实际启动新数据条目时才有条目。 (我已经使用空格来模拟制表符间距的效果,因为StackOverflow不允许我输入制表符。) 我想找到一些简单的方法将此表转换为以下内容, 理想情况下,使用面向行的Unix文本处理工具:
1 UNITED STATES OF AMERICA 3797
2 CANADA 3855
3 ISLAMIC REPUBLIC OF IRAN 636
使用标准的Unix工具有一种简单的方法吗?我已经尝试过一点但没有找到一个。
答案 0 :(得分:0)
你可以试试这个awk
awk -F '\t' '
NF==3{
if(b)
print b
b=$0
}
NF==2{
split(b,a,FS)
b=a[1] FS $2 " " a[2] FS a[3]
}
END{
print b
}
' infile
您必须根据需要重新排序输出