我的文件sms.txt
:
1 sender: 887645651201059711697
date: 15/02/04,08:07:08
Maaf, pulsa Anda tidak cukup untuk mengaktifkan Pkt Super Ngebut 11GB, 30hr, Rp55rb. Ayo isi pulsa di XL Center, ATM, Minimarket, Inet, m-Banking. Info 817
如何只打印短信内容?所以我希望输出是这样的:
Maaf, pulsa Anda tidak cukup untuk mengaktifkan Pkt Super Ngebut 11GB, 30hr, Rp55rb. Ayo isi pulsa di XL Center, ATM, Minimarket, Inet, m-Banking. Info 817
我尝试了 grep '\n.*' sms.txt
但没有成功。
最佳答案
我相信这可以满足您的需求:
$ awk '/^$/{f=1} f && /./{print;f=0}' sms.txt
Maaf, pulsa Anda tidak cukup untuk mengaktifkan Pkt Super Ngebut 11GB, 30hr, Rp55rb. Ayo isi pulsa di XL Center, ATM, Minimarket, Inet, m-Banking. Info 817
工作原理
/^$/{f=1}
每次遇到空行时,标志
f
都会设置为 1。f &&/./{print;f=0}
如果标志
<f
非零且当前行不为空,则打印当前行并将f
重置为零。
备选方案
正如 Jotne 在评论中所建议的,这里有两个实现相同目标的另外两个 awk
命令:
awk '!/./{f=1} f && /./{print;f=0}' sms.txt
awk '!NF{f=1} f && NF{print;f=0}' sms.txt
关于linux - grep 换行后的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490577/