sed 로 파일 편집 질문
글쓴이: zzaratra / 작성시간: 화, 2003/10/21 - 9:59오전
---------- test.txt ---------
linux {
Host: hellow.com
Address: 3.32.22.22
}
--------------------------------
위와 같은 파일의 Host 와 Address를 바꾸려고 하는데요...
cat test.txt |sed '/^linux/ { n /Host/ c\ HOST: com.com n /Address/ c\ ADDRESS: 45.34.34.33 }'
위 코드로 하면 Host 만 바뀌더라구요.. 두개 다 바꾸려면 어떻게 하나요..
Forums:
sed 로 파이프 되어 나온 것을 다시 다른 sed 로 만드는 것은 어떨
sed 로 파이프 되어 나온 것을 다시 다른 sed 로 만드는 것은 어떨까요?
---
http://coolengineer.com
[quote]sed 로 파이프 되어 나온 것을 다시 다른 sed 로
예 저도 바빠서 그렀게 했는데요...
궁금한것이
n 하면 next 라인으로 넘어 가서 패턴을 찾을것 같은데..
첫번째.. n는 되는데.. 두번째 n 잘되지 않는것 같아서요...
물론
했을때는
---------result
linux {
Host: hellow.com
Host: hellow.com
Address: 3.32.22.22
Address: 3.32.22.22
}
--------------
잘되는것 같구요..
두번째 next 한다음의 라인을 바꾸려면 안되는지 궁금..
이상은 Valkyrie
http://aladdin.co.kr/shop/wproduct.aspx?ISBN=8995710160&kw=00001A
mms://211.106.66.141/live4/kbs/psong182_m.asf
HAPPy !!
[code:1]The change command clears the pa
The change command clears the pattern space, having the same effect on the pattern space as the delete command. No command following the change command in the script is applied.
c \
이 뒤에 있는 명령어는 실행하지 않는답니다
http://pcmarpxy.mine.nu/incoming/books/unix_bookshelf/sedawk/ch05_05.htm
답만 고려하면 이런 지저분한 정규식이 되는군요.[code:1]
답만 고려하면 이런 지저분한 정규식이 되는군요.
test.txt파일안에 단순히 저 문장만 있으면 별 문제 없으나
linux{
...
}
linux{
...
}
..
..
이렇게 되어 있으면 못쓰죠.
awk 에서 RS를 }로 바꿔서
필드 $4, $6 을 조작하면 한꺼번에 처리할 수 있을 겁니다.
즐거운 하루 되세요.
원래 소스에 오류가 있었던거 같애서.. 다시 작성해보았습니다...
원래 소스에 오류가 있었던거 같애서.. 다시 작성해보았습니다...
linux가 발견되면, "}"까지 갈무리를 하면서 치환하는 형태로 가는 것이 옳을 것 같애서...
---
http://coolengineer.com
c\ 다음에는 명령어를 쓸수 없다는 것도 알았고.. awk 를 써서
c\ 다음에는 명령어를 쓸수 없다는 것도 알았고..
awk 를 써서 될수 있었는데. 하는 생각도 들고
label 사용해서 루프문을 돌리니까 괜찮네요..
답변에 감사 합니다.. 한가지 몰랐는데.. 열가지 얻은 기분이네요... ^^
이상은 Valkyrie
http://aladdin.co.kr/shop/wproduct.aspx?ISBN=8995710160&kw=00001A
mms://211.106.66.141/live4/kbs/psong182_m.asf
HAPPy !!
댓글 달기