数据样本输入:
Name mobile url message text
test11 1234567890 www.google.com "Data Test New
Date:27/02/2020
sample1: 1bags
sample2: 20bags
Regards
The test user user user Sangha
Ph:091 : 123456789"
test12 1234567891 www.google.com hello
我的输出应该是
Name mobile url message text
test11 1234567890 www.google.com "Data Test New\nDate:27/02/2020\nsample1: 1bags\nsample2: 20bags\nRegards\nThe test user user user Sangha\nPh:091 : 123456789"
test12 1234567891 www.google.com hello
我已经使用了以下命令,但是它不起作用
awk '!/"$/{sub(/$/,"\\n");printf "%s",$0;next}1' file
我也使用了其他几个命令,但是在我的情况下它们都不起作用
使用gnu-awk
,你可以这样做:
awk -v RS='"[^"]*"' '{gsub(/\r?\n/, "\\n", RT); ORS=RT} 1' file
Name mobile url message text
test11 1234567890 www.google.com "Data Test New\nDate:27/02/2020\nItems: 1\nTotal: 3\nRegards\nABC DATa\nPh:091 : 123456789"
test12 1234567891 www.google.com hello
使用脚本后,我得到以下输出名称移动url消息文本Ph:091:123456789“ user Sanghagle.com” APMC BANGALORE ARRIVALS test12 1234567891 www.google.com你好
它在那里工作,然后为什么不能在我的终端上工作。
gawk已经安装在我的系统中。当我运行命令sudo apt-get install gawk时,我得到的gawk已经是最新版本
然后,您可以使用:
awk -v RS='("[^"]*")' '{gsub(/\r?\n/, "\\n", RT); ORS=RT} 1' file
它的工作原理非常完美。非常感谢。您真是个乐于助人的人