sha*_*chi 4 sed awk text-processing
john math
science
paul math
science
rosy math
jill science
rob math
science
hary math
Run Code Online (Sandbox Code Playgroud)
期望的输出:
john math
john science
paul math
paul science
rosy math
jill science
rob math
rob science
hary math
Run Code Online (Sandbox Code Playgroud)
使用awk
,通过对字段数进行操作
$ awk 'NF==1{print p "\t" $1; next} {p=$1} 1' ip.txt
john math
john science
paul math
paul science
rosy math
jill science
rob math
rob science
hary math
Run Code Online (Sandbox Code Playgroud)
{p=$1} 1
对于单字段以外的行,保存第一列并打印该行NF==1{print p "\t" $1; next}
如果只有一个字段,则打印前一个字段tab
和输入行中的字段。next
将跳过其余语句并处理下一行
如果tab
分离不起作用,请使用column
$ awk 'NF==1{print p,$1; next} {p=$1} 1' ip.txt | column -t
john math
john science
paul math
paul science
rosy math
jill science
rob math
rob science
hary math
Run Code Online (Sandbox Code Playgroud)