
我有一個輸出
Student Name: abc
Roll Num: 123
Student Name: xyz
Roll Num: 124
我需要以下面的格式列印
Student Name Roll Num
abc 123
xyz 124
有人可以幫我簡單的linux指令嗎
答案1
awk
當然,它並不是工具箱中唯一的工具。這是磨坊主行動中:
%mlr --ixtab --ips : --opprint cat << END 學生姓名:abc 卷數:123 學生名稱:xyz 卷數:124 結尾 學生姓名 卷號 ABC 123 XYZ 124 %
-ixtab
您正在執行從 XTAB 格式 ( ) 到 PPRINT 格式 ( )的轉換-opprint
。
答案2
任君選擇:
$ awk -v RS= -F': |\n' -v OFS='\t' 'NR==1{print $1, $3} {print $2, $4}' file
Student Name Roll Num
abc 123
xyz 124
$ awk -v RS= -F': |\n' -v OFS='\t' 'NR==1{print $1, $3} {print $2, $4}' file | column -s$'\t' -t
Student Name Roll Num
abc 123
xyz 124
$ awk -v RS= -F': |\n' -v fmt='%-13s %-13s\n' 'NR==1{printf fmt, $1, $3} {printf fmt, $2, $4}' file
Student Name Roll Num
abc 123
xyz 124
答案3
Method1
awk 'BEGIN{print "Student Name";RS="Student Name:"}{print $1}' p.txt| awk '$0 !~ /^$/' >student.txt
awk 'RS="Roll Num"{print $2}' p.txt|sed '/Name/,/^$/d'| awk 'BEGIN {print "Roll Num"}{print $0}' > roll.txt
paste student.txt roll.txt
output
Student Name Roll Num
abc 123
xyz 124
Method2
awk 'BEGIN{print "Student Name"}{if($1 ~ /Student/){print $3}}' p.txt > student.txt
awk 'BEGIN{print "Roll Num"}{if($1 ~ /Roll/){print $3}}' p.txt > roll.txt
paste student.txt roll.txt
output
Student Name Roll Num
abc 123
xyz 124