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

GNU/Linux 배포판에는 텍스트를 처리하는 프로그램이 풍부하며, 대부분은 GNU 코어 유틸리티에서 제공됩니다. 배우는 데 약간의 곡선이 있지만, 이러한 유틸리티는 올바르게 사용될 경우 매우 유용하고 효율적일 수 있습니다.
모든 커맨드 라인 사용자가 알아야 할 13가지 강력한 텍스트 조작 도구를 소개합니다.
1. cat
Cat은 파일을 cat 합치는 용도로 설계되었지만, 가장 자주 단일 파일을 표시하는 데 사용됩니다. 인자가 없으면 cat은 Ctrl + D가 눌릴 때까지 표준 입력을 읽습니다(터미널에서 또는 파이프를 사용할 경우 다른 프로그램 출력에서). 표준 입력은 -로 명시적으로 지정할 수도 있습니다.
Cat에는 몇 가지 유용한 옵션이 있으며 특히:
-A는 각 줄의 끝에 “$”를 출력하고 인쇄되지 않는 문자를 카렛 표기법으로 표시합니다.-n은 모든 줄에 번호를 매깁니다.-b는 비어 있지 않은 줄에만 번호를 매깁니다.-s는 연속된 빈 줄을 하나의 빈 줄로 줄입니다.
다음 예에서는 file1, 표준 입력, file3의 내용을 연속합치고 번호를 매기고 있습니다.
cat -n file1 - file3
2. sort
이름에서 알 수 있듯이, sort는 파일 내용을 알파벳 순서와 숫자 순서로 정렬합니다.

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

4. 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번째 문자까지.

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

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

7. fold
긴 텍스트 줄을 읽고 처리하기 쉽게 만들기 위해 fold를 사용할 수 있으며, 이는 줄을 지정된 너비로 감쌉니다.
Fold는 기본적으로 지정된 너비를 엄격하게 일치시키며, 필요에 따라 단어를 자릅니다.
fold -w30 longline.txt
단어가 자르는 것이 바람직하지 않은 경우 -s 옵션을 사용하여 공백에서 자를 수 있습니다.
fold -w30 -s longline.txt
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 플래그를 사용할 수 있습니다.

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

11. split
split을 사용하여 파일을 줄 수, 크기 또는 특정 파일 수에 따라 더 작은 파일로 나눌 수 있습니다.
줄 수로 나누기
split -l num_lines input_file output_prefix
바이트로 나누기
split -b bytes input_file output_prefix
특정 파일 수로 나누기
split -n num_files input_file output_prefix12. tac
Tac은 cat의 역순으로, 바로 그것을 수행합니다: 파일을 역순으로 줄을 표시합니다.

13. tr
tr 도구는 문자 집합을 변환하거나 삭제하는 데 사용됩니다.
문자 집합은 일반적으로 문자열 또는 문자 범위입니다. 예를 들어:
- “A-Z”: 모든 대문자
- “a-z0-9”: 소문자 및 숫자
- “\n[:punct:]”: 개행 및 구두점 문자
자세한 내용은 tr 매뉴얼 페이지를 참조하십시오.
한 집합을 다른 집합으로 변환하려면 다음 구문을 사용하십시오.
tr SET1 SET2예를 들어, 소문자를 해당 대문자에 대체하려면 다음과 같이 사용할 수 있습니다.
tr "a-z" "A-Z"
문자 집합을 삭제하려면 -d 플래그를 사용하십시오.
tr -d SET문자 집합의 보완 집합(즉, 집합을 제외한 모든 것)을 삭제하려면 -dc를 사용하십시오.
tr -dc SET결론
리눅스 커맨드 라인에서는 배울 것이 많은 것이 사실입니다. 위의 명령어들이 커맨드 라인에서 텍스트를 보다 잘 다루는 데 도움이 되기를 바랍니다.