文件file:
abc$qwe$rt
yu$
1245$
abc$qwe$rtyu$1234&
abc$qwe$
5667
$899900$
abc$qwe$rtyu$12
34$
要求处理以后变成下面的样子
abc$qwe$rtyu$1245$
abc$qwe$rtyu$1234&
abc$qwe$5667$899900$
abc$qwe$rtyu$1234$
处理方式为:
awk -vRS=”abc” ‘NF{print RS gensub(“\n”,””,”g”)}’ file
解释说明:
-v:定义一个变量叫做RS,其中RS的内容为abc,gensub的意思为将\n换行符全部用空替换掉,其中g表示的为全部的意思。最前面的NF的意思为剔除掉空行的行不进行输出,其中的空行包括空格,tab,以及只包含记录分隔符的行。
所以如果我们将文本按照下面的方式进行处理的话
awk -vRS=”abc” ‘{print RS gensub(“\n”,””,”g”)}’ file-------------------------->去掉NF
这时候第一条记录只时候只剩下的是abc,作为记录的分隔符,输出的时候会按照空行进行显示。
abc
abc$qwe$rtyu$1245$
abc$qwe$rtyu$1234&
abc$qwe$5667$899900$
abc$qwe$rtyu$1234$
最上面会显示一个abc,因为空行记录加上RS这时候会输出位第一行。