複数行をスペースと引用符を使用して1行に変換する

複数行をスペースと引用符を使用して1行に変換する

awktrループではなく単純なツールを使用して複数の行をスペースと引用符で囲んだ1行に変換するにはどうすればよいですかfor

$ cat databases.txt
Wp_new
Frontend DB
DB_EXT

期待される:

$ cat databases.txt
"Wp_new" "Frontend DB" "DB_EXT"  

編集1:

すべての有用な答えに感謝します。しかし、私が正しいとマークしたのは、短時間でターミナルに入力することができ、あまり手間のかからない(簡単に)私(システム管理者)がシステムをダウンさせることなく非常に迅速に実行できることです。

答え1

これは次の方法で行うことができます。

awk '{printf("\"%s\" ",$0)} END { printf "\n" }' databases.txt

出力:

"Wp_new" "Frontend DB" "DB_EXT" 

答え2

そしてsed + paste

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

$ sed 's/.*/"&"/' databases.txt | paste -sd' ' -
"Wp_new" "Frontend DB" "DB_EXT"

またはちょうどpaste(丁寧にhttps://unix.stackexchange.com/a/593240)

$ <databases.txt paste -d '"' /dev/null - /dev/null | paste -sd' ' -
"Wp_new" "Frontend DB" "DB_EXT"


入力に無視する必要がある空行がある場合:

$ cat ip.txt
Wp_new

Frontend DB



DB_EXT
$ sed -n 's/..*/"&"/p' ip.txt | paste -sd' ' -
"Wp_new" "Frontend DB" "DB_EXT"

答え3

$ awk '{printf "%s\"%s\"", sep, $0; sep=OFS} END{print ""}' file
"Wp_new" "Frontend DB" "DB_EXT"

答え4

GNU xargs

<databases.txt xargs -d'\n' printf '"%s"\n' | paste -sd\  ;

またはPerlを使用することもできます:

perl -l40 -012 -pe 's/^|$/"/g;$\=$/ if eof' databases.txt

結果:

"Wp_new" "Frontend DB" "DB_EXT"

関連情報