用 space 或分号分隔加入下一行,直到它与模式匹配
Join next lines with space or semicolumn seperated till it matches the pattern
我正在寻找类似下面的输出。
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;;
这个 awk 单行代码可以完成这项工作:
awk '{printf "%s%s",(NR>1&&/^Data for SU/?RS:""),[=10=]}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:""),[=11=]}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;;
我正在寻找类似下面的输出。
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;;
这个 awk 单行代码可以完成这项工作:
awk '{printf "%s%s",(NR>1&&/^Data for SU/?RS:""),[=10=]}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:""),[=11=]}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;;