부팅 시 rc.local파일에 문자를 삽입하는 일이 생겼다.
echo를 이용하여 삽입하였지만 exit 0 즉 맨 마지막 줄에 명령어가 삽입이 되어 실행이 되지 않았다.
찾던 도중 awk와 sed를 이용하여 특정라인에 추가를 하였지만 이는 추가한 내용을 출력한 것이지 갱신이 되는 것은 아니었다.
ex) awk ' {if (NR == <22:특정 열>) { print "명령어 해당 부분" ; print $0 } else { print $0 } }' <InputFile>
ex) sed -e '<22:특정 열> i\ <명령어>' <InputFile>
그러나 awk나 sed는 찾기, 출력, 치환 등 많이 사용되기 때문에 스크립트를 펄의 능력과 거의 비슷한 수준으로 끌어올릴 수 있음.
위의 방법은 InputFile에 문자열들을 읽고 22라인, 즉 설정한 특정 열에 내가 넣고 싶은 명령어를 넣고 출력하는 것 밖에 하지 못했다. 물론 >> 를 통해 덧붙이는 방법이나, > 덮어쓰기를 할 순 있었으나 별도의 파일을 만들거나, 또는 밑에 내용들이 계속 덧붙이는 더러운 파일이 생성되었다.
결론.
특정라인에 곧바로 추가하기
perl -p -i -e '$.==<22:특정열> and print "<명령어>"' <InputFile>
반응형
'프로그래밍 > Linux' 카테고리의 다른 글
ubuntu에서 eth0 출력하는법 (2) | 2016.05.19 |
---|---|
리눅스에서 beyond compare 사용하기 (0) | 2016.01.14 |
우분투에서 안드로이드 미러링 사용하기(seven-square) (0) | 2015.12.10 |
dkms를 사용하여 리눅스 커널모듈을 패키지로 만들기 (0) | 2015.10.22 |
Linux Personal repository 만들기 (0) | 2015.10.22 |