将多行转换为带有空格和引号的单行

Akh*_*hil 7 shell text-processing

如何使用awktr或任何其他使其简单(但不是for循环)的工具将多行转换为带有空格和引号的单行?

$ cat databases.txt
Wp_new
Frontend DB
DB_EXT
Run Code Online (Sandbox Code Playgroud)

预期的:

$ cat databases.txt
"Wp_new" "Frontend DB" "DB_EXT"
Run Code Online (Sandbox Code Playgroud)

Sky*_*net 12

可以用来完成

awk '{printf("\"%s\" ",$0)} END { printf "\n" }' databases.txt
Run Code Online (Sandbox Code Playgroud)

输出:

"Wp_new" "Frontend DB" "DB_EXT" 
Run Code Online (Sandbox Code Playgroud)


Sun*_*eep 7

sed + paste

$ sed 's/.*/"&"/' databases.txt
"Wp_new"
"Frontend DB"
"DB_EXT"

$ sed 's/.*/"&"/' databases.txt | paste -sd' ' -
"Wp_new" "Frontend DB" "DB_EXT"
Run Code Online (Sandbox Code Playgroud)

或者,只是paste(礼貌https://unix.stackexchange.com/a/593240

$ <databases.txt paste -d '"' /dev/null - /dev/null | paste -sd' ' -
"Wp_new" "Frontend DB" "DB_EXT"
Run Code Online (Sandbox Code Playgroud)

如果输入有应忽略的空行:

$ cat ip.txt
Wp_new

Frontend DB



DB_EXT
$ sed -n 's/..*/"&"/p' ip.txt | paste -sd' ' -
"Wp_new" "Frontend DB" "DB_EXT"
Run Code Online (Sandbox Code Playgroud)