我有一个这样的文本文件:
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,
答案 0 :(得分:2)
符合您更新要求的awk
解决方案(忽略具有不匹配的"
的行):
awk '/"[^"]*$/ { print; next } { gsub(" ", "\n"); print }' file
注意:
"
的行应从空格到换行符中排除。这会产生:
www.twitter.com,sev-pool,tiger
lion,
www.google.com,"http google-pool,,
www.facebook.com,pool,usa
mexico
canada,
答案 1 :(得分:0)
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,