2013. 4. 8. 21:32

awk 로 특정 라인에 특정 문자 삽입하기

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 를 찍게 된다.