여러 줄을 공백과 따옴표를 사용하여 한 줄로 변환

여러 줄을 공백과 따옴표를 사용하여 한 줄로 변환

awktr루프가 아닌 간단한 도구를 사용하여 여러 줄을 공백과 따옴표가 있는 한 줄로 변환하려면 어떻게 해야 합니까 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"

관련 정보