Shell 除了一个空间外,如何为每个空间创建一条新线?
我有这样一个文本文件:Shell 除了一个空间外,如何为每个空间创建一条新线?,shell,unix,if-statement,sh,tr,Shell,Unix,If Statement,Sh,Tr,我有这样一个文本文件: www.twitter.com,sev-pool,tiger lion, www.google.com,"http google-pool,, www.facebook.com,pool,usa mexico canada, 在本例中,我想让每个空格都成为新行,除了“http google pool中的空格,因为”在这一行上是不匹配的 有没有办法不用行号就可以做到这一点?可能是依赖于“”的if语句,还是其他方式 我正在使用tr命令:tr”““/n”,但我无法省略所
www.twitter.com,sev-pool,tiger lion,
www.google.com,"http google-pool,,
www.facebook.com,pool,usa mexico canada,
在本例中,我想让每个空格都成为新行,除了“http google pool中的空格,因为”
在这一行上是不匹配的
有没有办法不用行号就可以做到这一点?可能是依赖于“”的if语句,还是其他方式
我正在使用tr命令:tr”““/n”
,但我无法省略所需的行
预期产出:
www.twitter.com,sev-pool,tiger
lion,
www.google.com,"http google-pool,,
www.facebook.com,pool,usa
mexico
canada,
符合您更新需求的
awk
解决方案(忽略带有不匹配“
”的行):
注:
- 假设包含不匹配的
的行应作为一个整体从空格到换行符转换中排除“
www.twitter.com,sev pool,tiger
狮子,
www.google.com,“http谷歌池,,
www.facebook.com,池,美国
墨西哥
加拿大,
tr''\n'
反斜杠、单引号(或反斜杠的两倍)
awk '/"[^"]*$/ { print; next } { gsub(" ", "\n"); print }' file
awk '!/google/{gsub(/ /,"\n")}1' file
www.twitter.com,sev-pool,tiger
lion,
www.google.com,"http google-pool,,
www.facebook.com,pool,usa
mexico
canada,