컴퓨터 / IT
리눅스에서 awk명령을 응용하여 텍스트 파일의 특정 행과 열을 바꾸어 보자.
C O S M O S Project
2017. 6. 30. 23:10
지금까지 awk 2강의 까지 간단하게 해 보았고 이번 강의도 매우 쉬운 원하는 행과 열에 텍스트를 끼워 넣는 방법을 배워
볼 것이다.
먼저 간단히 텍스트 파일을 만들어 보자.
user@user~$ |
echo "aaa |
그리고 이전 처럼 원하는 행과 열을 출력하여 보자.
원리는 간단하다. 여기에 텍스트만 추가하면 변경되어 나온다.
user@user~$ |
sed -n '2p' a | awk ' {print "텍스트" $2} ' |
텍스트eee
만일 반대쪽에 텍스트를 달아 출력 하고 싶다면
user@user~$ |
sed -n '2p' a | awk ' {print $2 " 텍스트"} ' |
eee텍스트
모든 라인의 열에 적용 하고 싶다면 그냥 awk 명령으로만 수행하면 된다.
user@user~$ |
awk ' {print "텍스트 " $2} ' a |
그렇다면 실제 해당 라인의 텍스트를 변조하여 기록 하려면 어떻게 해야 하는가?
실제적인 sed 명령을 응용한 라인 치환을 하려 한다면 코드가 조금 길어 지긴 하다.
user@user~$ |
sed -n '2p' a |awk ' {print "텍스트 " $2} ' > b; sed -i "2s/.*/`cat b`/g" a; cat a |
aaa
텍스트 eee
ccc f
텍스트 eee
ccc f
이렇게 되면 출력 결과에 두번째 라인에 두번째열의 변화만 적용 되어 출력되는 것을 볼 수가 있다.