커맨드 라인에서 텍스트 작업을 위한 유용한 도구 13가지

텍스트 도구 리눅스 커맨드 라인 특징

GNU/Linux 배포판에는 텍스트를 처리하는 프로그램이 풍부하며, 대부분은 GNU 코어 유틸리티에서 제공됩니다. 배우는 데 약간의 곡선이 있지만, 이러한 유틸리티는 올바르게 사용될 경우 매우 유용하고 효율적일 수 있습니다.

모든 커맨드 라인 사용자가 알아야 할 13가지 강력한 텍스트 조작 도구를 소개합니다.

1. cat

Cat은 파일을 cat 합치는 용도로 설계되었지만, 가장 자주 단일 파일을 표시하는 데 사용됩니다. 인자가 없으면 cat은 Ctrl + D가 눌릴 때까지 표준 입력을 읽습니다(터미널에서 또는 파이프를 사용할 경우 다른 프로그램 출력에서). 표준 입력은 -로 명시적으로 지정할 수도 있습니다.

Cat에는 몇 가지 유용한 옵션이 있으며 특히:

  • -A는 각 줄의 끝에 “$”를 출력하고 인쇄되지 않는 문자를 카렛 표기법으로 표시합니다.
  • -n은 모든 줄에 번호를 매깁니다.
  • -b는 비어 있지 않은 줄에만 번호를 매깁니다.
  • -s는 연속된 빈 줄을 하나의 빈 줄로 줄입니다.

다음 예에서는 file1, 표준 입력, file3의 내용을 연속합치고 번호를 매기고 있습니다.

cat -n file1 - file3

리눅스 텍스트 도구 cat

2. sort

이름에서 알 수 있듯이, sort는 파일 내용을 알파벳 순서와 숫자 순서로 정렬합니다.

리눅스 텍스트 도구 sort

3. uniq

Uniq는 정렬된 파일을 가져와 중복된 줄을 제거합니다. 일반적으로 sort와 함께 사용되어 하나의 명령어로 체인됩니다.

리눅스 텍스트 도구 uniq

4. comm

Comm은 두 개의 정렬된 파일을 줄 단위로 비교하는 데 사용됩니다. 세 개의 열을 출력합니다: 첫 번째 두 열에는 각각 첫 번째 파일과 두 번째 파일에 고유한 줄이 포함되고, 세 번째 열은 두 파일에서 모두 발견된 줄을 표시합니다.

리눅스 텍스트 도구 comm

5. cut

Cut은 문자, 필드 또는 바이트를 기준으로 특정 줄의 섹션을 검색하는 데 사용됩니다. 특정 파일이 지정되지 않은 경우 파일에서 또는 표준 입력에서 읽을 수 있습니다.

문자 위치로 자르기

-c 옵션은 단일 문자 위치 또는 하나 이상의 문자 범위를 지정합니다.

예를 들어:

  • -c 3: 3번째 문자.
  • -c 3-5: 3번째부터 5번째 문자까지.
  • -c -5 또는 -c 1-5: 1번째부터 5번째 문자까지.
  • -c 5-: 5번째 문자부터 줄의 끝까지.
  • -c 3,5-7: 3번째와 5번째부터 7번째 문자까지.

리눅스 텍스트 도구 cut char

필드로 자르기

필드는 단일 문자인 구분자로 구분되며, 이는 -d 옵션으로 지정됩니다. -f 옵션은 필드 위치 또는 위와 동일한 형식을 사용하여 하나 이상의 필드 범위를 선택합니다.

리눅스 텍스트 도구 cut field

6. dos2unix

GNU/Linux와 유닉스는 일반적으로 텍스트 줄을 줄 바꿈(LF)으로 종료하고, 윈도우는 캐리지 리턴과 줄 바꿈(CRLF)을 사용합니다. CRLF 텍스트를 리눅스에서 처리할 때 호환성 문제가 발생할 수 있으며, 이 경우 dos2unix가 필요합니다. CRLF 종료자를 LF로 변환합니다.

다음 예에서는 file 명령을 사용하여 dos2unix를 사용하기 전과 후의 텍스트 형식을 확인합니다.

리눅스 텍스트 도구 dos2unix

7. fold

긴 텍스트 줄을 읽고 처리하기 쉽게 만들기 위해 fold를 사용할 수 있으며, 이는 줄을 지정된 너비로 감쌉니다.

Fold는 기본적으로 지정된 너비를 엄격하게 일치시키며, 필요에 따라 단어를 자릅니다.

fold -w30 longline.txt

리눅스 텍스트 도구 fold

단어가 자르는 것이 바람직하지 않은 경우 -s 옵션을 사용하여 공백에서 자를 수 있습니다.

fold -w30 -s longline.txt

리눅스 텍스트 도구 fold spaces

8. iconv

이 도구는 한 인코딩에서 다른 인코딩으로 텍스트를 변환하는 데 사용되며, 비정상적인 인코딩을 처리할 때 매우 유용합니다.

iconv -f input_encoding -t output_encoding -o output_file input_file
  • “input_encoding”은 변환할 인코딩입니다.
  • “output_encoding”은 변환될 인코딩입니다.
  • “output_file”은 iconv가 저장할 파일 이름입니다.
  • “input_file”은 iconv가 읽을 파일 이름입니다.

참고: 사용 가능한 인코딩 목록은 iconv -l로 확인할 수 있습니다.

9. sed

sed는 강력하고 유연한 s tream ed itor로, 문자열을 찾고 바꾸는 데 가장 일반적으로 사용됩니다. 다음 구문을 사용합니다.

다음 명령은 지정된 파일(또는 표준 입력)에서 읽어와 정규 표현식 패턴과 일치하는 텍스트 부분을 교체 문자열로 변경하고 결과를 터미널에 출력합니다.

sed s/pattern/replacement/g filename

원본 파일을 수정하려면 -i 플래그를 사용할 수 있습니다.

리눅스 텍스트 도구 sed

10. wc

wc 유틸리티는 파일의 바이트, 문자, 단어 또는 줄 수를 출력합니다.

리눅스 텍스트 도구 wc

11. split

split을 사용하여 파일을 줄 수, 크기 또는 특정 파일 수에 따라 더 작은 파일로 나눌 수 있습니다.

줄 수로 나누기

split -l num_lines input_file output_prefix

리눅스 텍스트 도구 split lines

바이트로 나누기

split -b bytes input_file output_prefix

리눅스 텍스트 도구 split bytes

특정 파일 수로 나누기

split -n num_files input_file output_prefix

12. tac

Tac은 cat의 역순으로, 바로 그것을 수행합니다: 파일을 역순으로 줄을 표시합니다.

리눅스 텍스트 도구 tac

13. tr

tr 도구는 문자 집합을 변환하거나 삭제하는 데 사용됩니다.

문자 집합은 일반적으로 문자열 또는 문자 범위입니다. 예를 들어:

  • “A-Z”: 모든 대문자
  • “a-z0-9”: 소문자 및 숫자
  • “\n[:punct:]”: 개행 및 구두점 문자

자세한 내용은 tr 매뉴얼 페이지를 참조하십시오.

한 집합을 다른 집합으로 변환하려면 다음 구문을 사용하십시오.

tr SET1 SET2

예를 들어, 소문자를 해당 대문자에 대체하려면 다음과 같이 사용할 수 있습니다.

tr "a-z" "A-Z"

리눅스 텍스트 도구 tr

문자 집합을 삭제하려면 -d 플래그를 사용하십시오.

tr -d SET

문자 집합의 보완 집합(즉, 집합을 제외한 모든 것)을 삭제하려면 -dc를 사용하십시오.

tr -dc SET

결론

리눅스 커맨드 라인에서는 배울 것이 많은 것이 사실입니다. 위의 명령어들이 커맨드 라인에서 텍스트를 보다 잘 다루는 데 도움이 되기를 바랍니다.