이것은 내 샘플 파일입니다.
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,
큰따옴표를 유지하라고 제안할 수 있나요?
답변1
xargs
큰따옴표는 xargs
유틸리티에 의해 해석 되므로 사용할 때 손실됩니다(참조:xargs가 입력에서 따옴표를 제거하는 이유는 무엇입니까?).
명령 tr
이 손상되어 오류 메시지가 표시됩니다.
tr
다음을 사용하여 개행 문자를 제거하려면
tr -d '\n' <file
줄 바꿈을 공백으로 바꾸려면 다음을 사용하십시오.
tr '\n' ' ' <file
공백으로 줄을 연결하려면:
paste -sd ' ' file
(위와 동일합니다. 단, 끝에 개행 문자를 추가하여 유효한 텍스트 줄로 만듭니다.)
답변2
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