[쉘스크립트] 텍스트 처리를 위한 쉘 명령어


[쉘스크립트] 텍스트 처리를 위한 쉘 명령어




최초 작성일 : 2021-09-13 | 수정일 : 2022-10-16 | 조회수 :

[쉘스크립트] 텍스트 처리를 위한 쉘 명령어

본 문서는 실무를 하면서 자주 쓰는 리눅스 쉘 명령어 소개하기 위한 목적이 있다.

cat 명령어

cat 명령어는 concatenate의 줄임말이다.
리눅스에서 빈번하게 사용하는 파일 보기 명령어이다.

기본 문법으로 파일 내용 출력가 있다.

$ cat <file-name>

파일 내용을 출력해 특정 파일명으로 저장 할 수 있다.

$ cat <file-name> > <output-file-name>

여러 파일 출력이 가능하다.

cat sample1.txt sample2.txt > sample3.txt

파일 내용 출력시 -n 옵션을 추가하면 줄번호 표시가 가능하다.

cat -n <file-name>

grep 명령어와 조합해서 무자열 필터에 사용할 수 있다.

$ cat <file-name> | grep -E '<tag>[a-zA-Z ]+tag>' > <output-file-name>

grep에서 -E 옵션은 확장 정규식 옵션으로 정규식을 이용해 문자열을 찾습니다.

Sed

*sed(stream editor)*은 편집기 이다.
ed 명령어와 grep 명령어를 일부 합친 명령어이다.
$/

명령어 옵션

  • a : 현재 행에 하나 이상의 새로운 행을 추가
  • c : 현재 행의 내용을 새로운 내용으로 바꿈
  • d : 행을 삭제
  • i : 현재 행의 위에 삽입
  • l : 출력되지 않는 특수문자를 출력
  • n : 다음 입력 행을 첫 번째 명령어가 아닌 다음 명령어에서 처리
  • p : 행을 출력
  • q : sed를 종료
  • r : 파일로부터 행을 읽어옴
  • ! : 선택된 줄을 제외한 나머지 전체 줄에 명령어 적용
  • s : 문자열을 치환한다.

옵션

  • -e : 다중 편집시 사용
  • -f : sed 스크립트 파일 지정에 사용
  • -n : 출력을 생략

명령어 예시는 다음과 같다.

sed '/hello/d' 1.html : hello 문자가 포함된 줄을 삭제하여 출력
sed '/hello/!d' 1.html : hello 문자가 있는 줄만 제외 하고 삭제
sed '1,2d' 1.html : 처음 1줄, 2줄을 지움
sed '/^$/d 1.html : 빈줄을 삭제:

sed 명령어는 치환해 유용한다. /s은 치환을 의미한다.
 /g을 추가하면 전역 치환을 수행한다는 의미이다.

sed 's/foo/bar/g' hello.txt

옵션으로 -i를 추가하면 변경 내용을 실재 반영해 저장 한다는 의미이다.
아래 명령어를 입력하면 의 내용중 “foo'라는 문자열을 “bar'로 치환한다.

sed -i 's/foo/bar/g' 

숨김줄 제거 명령어이다.

sed -i 's/\r//' 

만약 텍스트 파일에서 중복 줄을 제거하려면 sort 명령어를 이용한다.

sort -u <file-name>

Tags  #Linux  

닉네임:
댓글내용: