Files

將文件中的多行轉換為單行會失去雙引號

  • March 7, 2021

這是我的範例文件

cat test.txt
"IND WEB",
"Speed Web (Internal webserver)",
"Web Bill",

我嘗試了以下兩種將多行轉換為單行的解決方案,但是雙引號"失去了!

cat listofapps.txt | xargs -s 8192
IND WEB, Speed Web (Internal webserver), Web Bill,

tr '\n' < listofapps.txt
IND WEB, Speed Web (Internal webserver), Web Bill,

您能否建議保留雙引號?

當您使用xargs時,雙引號會失去,因為它們正在被xargs實用程序解釋(請參閱為什麼 xargs 從輸入中去除引號?)。

您的tr命令已損壞,應該給您一條錯誤消息。

要使用 刪除換行符,請tr使用

tr -d '\n' <file

要用空格替換換行符,請使用

tr '\n' ' ' <file

用空格連接行:

paste -sd ' ' file

(與上面相同,只是它在末尾添加了一個換行符以使其成為有效的文本行)。

sed方法:

sed '${G;s/\n//g;p;};H;d' sample.txt

相同,但在評論中有解釋:

sed '
   ${
       # If we are in the last line

       G; # Get anything stored in the hold space

       s/\n//g; # Replace any occurrence of space with nothing

       p; # Print 
   }
  
   # We are not in the last line so 
   H; # save the current line
   d; # and start the next cycle without print
' sample.txt

引用自:https://unix.stackexchange.com/questions/635822