반달가면 이글루에서 백업 - bahndal.egloos.com/439244
그냥 예제를 하나 적어두는 것이 가장 나을 것 같다.
예를 들어 people.txt 파일의 내용이 아래와 같이 이름::이메일::나이 형태라고 해 보자.
john::john@mail.com::24
mary::mary@mail.com::22
이것을 이메일[탭]이름[탭]나이 형태로 바꿔서 result.txt 파일에 저장하려고 한다. 아래와 같이 하면 되겠다.
cat people.txt | awk -v FS="::" -v OFS="\t" '{ print $2,$1,$3 }' > result.txt
-v 옵션으로 awk의 내부 변수를 설정해 주는데, FS는 입력에 적용하는 항목 구분자(field separator)이고 OFS는 출력에 적용하는 항목 구분자이다.
FS에 지정된 구분자를 기준으로 첫번째 항목은 $1에, 두번째 항목은 $2에 대응된다. 위의 예시를 기준으로 보면 $1은 이름, $2는 이메일에 대응될 것이다.
이름과 이메일의 순서를 바꿔야 하므로 print 명령에서 순서를 $2,$1,$3 이렇게 했다. 그리고 이 결과를 result.txt로 저장.
result.txt의 내용은 아래와 같이 될 것이다.
john@mail.com john 24 mary@mail.com mary 22
728x90
'bash script' 카테고리의 다른 글
[bash: date] 타이머/스톱워치 기능 (0) | 2020.11.05 |
---|---|
[bash: -x] 스크립트 디버깅 (0) | 2020.11.03 |
[bash: seq] 연속적인 수 생성 (0) | 2020.10.28 |
[bash: sed] 문자열 찾아 바꾸기 (0) | 2020.10.26 |
[bash: shuf] 문자열/수자를 무작위로 뒤섞기(shuffling) (0) | 2020.10.23 |