쉘스크립트
awk 로 특정 라인에 특정 문자 삽입하기
Dorori
2013. 4. 8. 21:32
awk 를 통해서 특정 데이터 파일안의 몇번째 라인에
특정 라인을 삽입할 수 있다.
예를 들어 data.txt 라는 파일안에 아래와 같은 내용이 있을 때.
aaa 11
bbb 22
ccc 33
bbb 22 라는 두번째 라인 다음에
test 44 라는 라인을 넣고자 할 때에는 다음과 같이 awk 를 실행시킨다.
[si@localhost script]$ cat data.txt
aaa 11
bbb 22
ccc 33
[si@localhost script]$ awk 'NR==2 {print $0"\ntest 44"}' data.txt
bbb 22
test 44
NR 이라는 옵션은 라인을 지정하는 옵션이며 NR==2 즉 2번째 라인일 경우에는
print $0 즉 2번째 라인은 모든 내용을 출력하고
그 뒤에 "" 로 묶인 내용을 출력한다.
쌍따옴표로 묶인 내용의 시작이 라인 구분 표시자인 \n 으로 시작되기 때문에
라인을 바꾸게 되고
그 뒤에 test 44 를 찍게 된다.