구분자

포스트: 4
Tags

Posts

4 posts

[bash: sed] 슬래시(/)가 포함된 문자열 대체하기

반달가면|2019년 6월 5일

우선 sed를 이용한 문자열 대체의 기본적인 예시는 이전 게시물을 참고하자. 여기로. # abc를 ABCD로 대체 echo "abc" | sed "s/abc/ABCD/" ABCD 그런데 만약 대체하고자 하는 문자열 자체에 슬래시(/)가 포함되면 어떻게 할 것인가? 의외로 방법은 간단하다. sed에서 통상 슬래시를 구분자로 사용하지만, 사실은 s 옵션 바로 다음에 나오는 문자가 구분자로 지정된다. 그리고 이 구분자가 반드시 슬래시일 필요는 없다. 아래의 예시를 보자. # ab/c를 ABC/D로 대체, 구분자는 "%" echo "ab/c" | sed "s%ab/c%ABC/D%" ABC/D "s/문자열/문자열/" 형태 대신 "s%문자열%문자열%" 형태로, 구분자를 퍼센트(%) 기

[bash: cut] 필드 구분자(delimiter)가 없는 경우 출력 억제하기

반달가면|2019년 4월 25일

우선, cut 명령어의 기본적인 사용 예시는 이전 게시물을 참고하자. 여기로. cut 명령으로 특정 부분을 잘라낼 경우 필드 구분자(delimiter)를 기준으로 잡는데, 필드 구분자가 없을 경우에 기본적으로 행 전체를 출력하게 된다. 아래의 예시를 보자. # 필드 구분자를 콜론(:)으로 지정, 2번째 항목 가져오기 echo "abc:def" | cut -d':' -f2 def # 대상 문자열에 필드 구분자가 없는 경우 echo "abc def" | cut -d':' -f2 abc def 필드 구분자가 없을 경우에 행 전체를 출력하는 것이 아니라 아예 아무것도 출력하지 않도록 하려면 -s 옵션을 추가해 준다. # 대상 문자열에 필드 구분자가 없는 경우, 출력하지 않음(-s

[bash: awk] awk에서 필드 구분자를 지정할 때 "escape sequence" 관련 경고 메시지 발생

반달가면|2017년 10월 19일

awk에서 -F 옵션을 이용해서 필드 구분자(field separator)를 지정할 수 있다. 일단 관련 내용은 이전 게시물을 참고하자. [bash: awk] 특정 위치(field)에 대한 문자열 검색 [bash: awk] 여러 종류의 단어 구분자를 지정해서 단어 선택하기 알파벳이나 수자 등을 필드 구분자로 사용할 때는 크게 문제가 없는데, 만약 특수문자(|, ] 등)가 구분자에 포함되어 있을 경우에는 문제가 좀 달라질 수 있다. 아래의 예시를 보자. # example.txt 파일 내용 확인 cat example.txt john||123-456 jane||111-222 # example.txt에서 두번째 필드 출력(오동작) awk -F '||' '{ print $2 }' e

[bash: awk] awk에서 문자열을 분할하여 배열(array)에 저장하기 (split)

반달가면|2017년 3월 9일

awk에서 문자열 작업을 할 때, 한 행의 문자열을 분할해서 배열에 저장할 수 있다. 예를 들어 한 문장이 있을 때 단어별로 쪼개서 배열의 원소로 저장하는 경우다. awk에서 제공하는 split 함수를 이용하면 된다. split 함수의 형식은 아래와 같다. split(문자열, 배열 이름, 구분자) 예를 들어 입력 받은 행($0)을 콜론(:) 기준으로 분할해서 배열 arr에 저장하고자 한다면 아래와 같이 된다. split($0, arr, ":") 배열의 원소번호(index)는 1부터 시작한다. 위의 예시에서 첫번째 원소가 arr[1]에 있다. 아래의 예시를 보자. # 문자열을 콜론을 기준으로 분할, 배열 arr에 저장한 후 세번째 원소만 출력 echo "a:b:c:d:e" | aw