john math
science
paul math
science
rosy math
jill science
rob math
science
hary math
希望の出力:
john math
john science
paul math
paul science
rosy math
jill science
rob math
rob science
hary math
ベストアンサー1
を使用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
{p=$1} 1
単一フィールドではない行の場合は、最初の列を保存して行を印刷します。NF==1{print p "\t" $1; next}
フィールドが1つしかない場合は、前のフィールド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