我正在寻找类似下面的输出。
Data for SUDO 'touch'
test (GROUP ) X
users (GROUP ) X
Comment : /usr/bin/touch
Data for SUDO 'wc'
test (GROUP ) X
Comment : /usr/bin/wc
Data for SUDO 'reclaim-files'
Comment : /etc/uidchanges/reclaim-files;;
我的输出应该是:
Data for SUDO 'touch'+ test (GROUP ) X+ users (GROUP ) X+Comment : /usr/bin/touch
Data for SUDO 'wc'+ test (GROUP ) X;Comment : /usr/bin/wc
Data for SUDO 'reclaim-files'+Comment : /etc/uidchanges/reclaimfiles;;
答案 0 :(得分:1)
这个awk one-liner完成了这项工作:
awk '{printf "%s%s",(NR>1&&/^Data for SU/?RS:""),$0}END{print ""}' file
用你的例子测试:
kent$ cat f
Data for SUDO 'touch'
test (GROUP ) X
users (GROUP ) X
Comment : /usr/bin/touch
Data for SUDO 'wc'
test (GROUP ) X
Comment : /usr/bin/wc
Data for SUDO 'reclaim-files'
Comment : /etc/uidchanges/reclaim-files;;
kent$ awk '{printf "%s%s",(NR>1&&/^Data for SU/?RS:""),$0}END{print ""}' f
Data for SUDO 'touch' test (GROUP ) X users (GROUP ) XComment : /usr/bin/touch
Data for SUDO 'wc' test (GROUP ) XComment : /usr/bin/wc
Data for SUDO 'reclaim-files'Comment : /etc/uidchanges/reclaim-files;;