[Linux] 텍스트 파일 관련 명령어 / 리다이렉션&파이프 / 정규표현식
🐧 텍스트 파일 관련 명령어
-
cat
-
cat [옵션] [파일]
-
파일의 내용을 출력
-
-
head
-
head [옵션] 파일명
-
파일의 앞부분을 지정한 만큼 출력, 지정하지 않는 경우 10개씩 출력
-
-
tail
-
tail [옵션] 파일명
-
파일의 마지막 행을 기준으로 지정한 만큼 출력, 지정하지 않는 경우 10개씩 출력
-
-
more
-
more [옵션] 파일명
-
파일을 화면 단위로 끊어서 출력
-
위에서 아래 방향으로만 출력, 지나간 내용을 다시 볼 수 없음
-
-
grep
-
grep [옵션] 문자열 파일명
-
파일에서 특정 패턴(문자열) 또는 졍규 표현식으로 나타낸 단어를 찾는 명령어
-
-
wc
-
wc [옵션] 파일명
-
파일의 라인 수(-l), 단어 수(-w), 알파벳 수(-c)를 출력
-
-
sort
-
sort [옵션] 정렬할파일명
-
명령어 결과 또는 문서 내용을 정렬
-
-
cut
-
cut [옵션] 파일명
-
파일에서 특정 필드 추출, 필드는 구분자로 구분
-
-
split
-
split [옵션] 파일명
-
하나의 파일을 여러 개의 작은 파일로 분리
-
라인 수 또는 용량 단위로 분할 가능
-
파일을 나누어 복사하거나 백업할 때 유용
-
🐧 리다이렉션(redirection) & 파이프(pipe)
-
리다이렉션(redirection)
-
표준 입력과 표준 출력의 방향을 재지정
-
표준 입출력/에러가 화면이 아닌 파일로 대체됨
-
표준 입력 장치는 키보드, 표준 출력/에러 장치는 모니터
-
리다이렉션 연산자
-
>
: 명령을 화면이 아닌 프린터나 파일에 출력하도록 전송, 파일이 존재하지 않으면 새로운 파일을 생성하고 같은 파일이 존재한다면 덮어씀 -
>>
: 파일이 있는 경우 지정된 파일에 결과를 추가, 파일이 존재하지 않으면 지정된 이름으로 파일 생성 -
<
: 키보드가 아닌 지정된 파일에서 입력 내용을 읽어옴 -
>&
: 명령의 출력을 다른 명령의 입력으로 보냄 -
<&
: 명령의 입력을 읽고 다른 명령의 출력으로 보냄
-
-
-
파이프(pipe)
-
둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램의 입력으로 전환하는 기능
-
현재 명령의 표준 출력을 다음 명령의 표준 입력으로 사용
-
명령어와 명령어의 연결은 ‘
|
’ 기호 사용 -
명령어1 | 명령어2 | 명령어3
: 명령어1의 출력 결과는 명령어2의 입력으로 처리, 명령어2의 처리 결과는 명령어3의 입력이 됨 -
더 이상 처리할 명령어가 없을 때 표준 출력 장치(화면)으로 출력
-
🐧 정규표현식
-
^
: 라인의 첫 글자- ex)
^a
: a로 시작하는 문자
- ex)
-
$
: 라인의 끝 글자- ex)
a$
: a로 끝나는 문자
- ex)
-
.
: 한 글자- ex)
a..b
: a와 b 사이에 두 개의 문자가 들어있는 단어
- ex)
-
[]
: []에 나열된 글자를 포함, ‘-‘로 문자 범위 지정-
ex)
[abc]d
: ad,bd, cd -
ex)
[1-9]
: 1~9 중 하나의 숫자
-
-
[^]
: []에 나열된 글자를 포함하지 않음, ‘-‘로 문자 범위 지정-
ex)
[^abc]d
: ad, bd, cd는 포함하지 않음 -
ex)
[^a-z]
: 알파벳 소문자로 시작하지 않는 모든 문자
-
-
*
: * 기호 바로 이전의 글자가 0회 이상 반복- ex)
ab*
: a, abb, abbb 등과 같이 b가 0회 이상 반복
- ex)
-
+
: + 기호 바로 이전 글자가 1회 이상 반복- ex)
ab+
: ab, abb, abbb
- ex)
-
?
: ? 기호 바로 이전 글자가 없거나 한 번만 존재- ex)
ab?
: a, ab
- ex)
-
()
: 부분 정규 표현식을 표시- ex)
a(bc)+
: bc 1회 이상 반복
- ex)
-
|
:로 구분된 단어들 중 최소 하나 존재 - ex)
a(b|c)
: b또는 c가 최소 하나 존재
- ex)
-
{m, n}
: { } 바로 이전 글자가 m개 이상 n개 이하로 반복- ex)
a{1,2}b
: ab, aab
- ex)