Sed는 새 줄을 공백으로 바꿉니다.

Sedneun Sae Jul Eul Gongbaeg Eulo Bakkubnida



UNIX/Linux에서 sed 명령은 스트림 편집을 위한 전용 도구입니다. 검색, 찾기 및 바꾸기, 삽입/삭제와 같은 텍스트 스트림에서 다양한 작업을 수행할 수 있습니다. 그러나 대부분의 경우 sed는 텍스트 내용을 찾고 바꾸는 데 사용됩니다.

이 가이드에서는 sed를 사용하여 줄 바꿈을 공백으로 바꾸는 방법을 보여줍니다.

sed를 사용하여 텍스트 바꾸기

먼저 sed를 사용하여 기본 찾기 및 바꾸기를 수행하는 방법을 빠르게 살펴보겠습니다. 몇 가지 추가 옵션을 사용하여 개행을 공백으로 바꿀 때도 동일한 방법이 사용됩니다. 명령 구조는 다음과 같습니다.







$ sed -e 's///'

다음 명령을 살펴보십시오.



$ echo '빠른 갈색 여우' | sed -e '/빠른/빠른/g'



echo 명령은 문자열을 다음 위치로 인쇄합니다. STDOUT . STDOUT 스트림은 다음과 같습니다. 파이프 세드로. 우리는 sed에게 quick의 모든 인스턴스를 fast로 바꾸도록 지시했습니다. 마지막으로 출력이 화면에 인쇄됩니다.





줄 바꿈을 공백으로 바꾸기

데모를 위해 여러 더미 콘텐츠가 포함된 다음 텍스트 파일 test.txt를 만들었습니다.

$ 고양이 test.txt



sed 명령은 다양한 패턴을 설명하는 정규식을 허용합니다. 이 기능을 활용하여 개행을 \n으로 설명합니다. 줄 바꿈을 공백으로 교체해 보겠습니다.

$ sed -e 's/\n/ /g' test.txt

그러나 예상대로 작동하지 않았습니다. 이 목표를 달성하려면 몇 가지 추가 옵션이 필요합니다. 다음 명령을 살펴보십시오.

$ sed -e ':a;N;$!ba;s/\n/ /g' test.txt

sed 명령에는 여러 섹션이 있습니다. 각각은 특정 작업을 나타냅니다.

  • :a: 레이블 'a'를 생성합니다.
  • N: 패턴 공간에 다음 줄을 추가합니다.
  • $!ba: 마지막 줄이 아닌 경우 레이블 'a'로 돌아갑니다.
  • s/\n/ /g: 줄 바꿈(\n)을 찾아 공백(/ /)으로 바꿉니다. 패턴은 전역적으로 일치합니다(/g).

sed 명령은 모든 \n 문자를 공백으로 대체하여 마지막 줄에 도달할 때까지 단계를 반복합니다.

이 복잡한 명령 대신 sed가 null로 구분된 레코드와 함께 작동하도록 지정하는 -z 플래그를 사용하여 작업을 단순화할 수 있습니다. 명령은 다음과 같습니다.

$ sed -z -e 's/\n/ /g' test.txt

대체 방법

sed가 작업을 잘 수행할 수 있지만 몇 가지 대체 도구가 있습니다. 이 섹션에서는 그 중 몇 가지를 간략하게 살펴보겠습니다.

다음 예에서는 tr 명령을 사용하여 간단한 방식으로 줄바꿈을 공백으로 바꿀 수 있습니다.

$ tr '\n' ' ' < 테스트.txt

또한 perl을 사용하여 작업을 수행할 수도 있습니다. 다음 구문도 sed에서 사용한 것과 유사하지만 단순화되었습니다.

$ perl -p -e 's/\n/ /' test.txt

줄 바꿈을 공백으로 바꾸는 또 다른 방법은 붙여넣기 명령을 사용하는 것입니다. 한 문자만 제거할 수 있습니다.

$ 붙여넣기 -s -d ' ' test.txt

sed와 마찬가지로 Linux에는 다른 도구인 awk가 함께 제공됩니다. sed와 유사하게 입력에서 일부 고급 교체를 수행할 수도 있습니다. 우리의 목적을 위해 다음 awk 명령을 사용하십시오.

$ awk 1 ORS=' ' 테스트.txt

결론

이 가이드에서는 sed를 사용하여 줄 바꿈을 공백으로 바꾸는 방법을 살펴보았습니다. 그것은 두 가지 다른 방법으로 달성되었습니다. 이 가이드에는 줄 바꿈을 공백으로 바꾸는 데 사용할 수 있는 다른 관련 도구도 포함되어 있습니다.

암기하기 어려운 복잡한 명령을 사용하는 대신 Bash 스크립팅을 사용하여 Linux에서 많은 작업을 수행합니다. 약간의 성능을 희생해야 하지만 유연성과 유용성은 그만한 가치가 있습니다. 에 대해 자세히 알아보기 초보자를 위한 Bash 스크립팅 .