스트립트로 특정 문자 안의 내용만 뽑아 내는 방법이 있을까요...
글쓴이: 지나가는새 / 작성시간: 수, 2015/09/16 - 2:39오후
안녕하세요
굉장히 큰 텍스트 문서가 있는데 형식이 이렇습니다.
# title1
{
content1
content2
content3
...
}
# title2
{
content1
content2
content3
...
}
...
문제는 contents의 내용이 가변적이라 몇 줄이 될지 예측하기 어렵다는 거예요. 하지만 최대 라인은 정해져 있습니다.
여기서는 10줄이라고 한다면..
일단 grep으로 title을 잡아내면 내용은 가져오겠죠.
cat test.txt | grep -A10 title
이럴 경우에 결과는 이렇게 될 겁니다.
# title1
{
content1
content2
content3
...
}
# title2
{
저는 title1에서 시작해서 '}' 가 나올 때 까지의 내용만 가져오고 싶거든요..
제가 원하는 결과물은 이렇습니다.
# title1
{
content1
content2
content3
...
}
이게 방법이 있을까요?
Forums:
이렇게 해보세요
sed -rn '/title1/{ p; :XX n; p; /}/q; b XX }' bigfile
1. p -- print title line
2. :XX -- set a label named XX
3. n -- get the next line
4. p -- print the line
5. /}/q -- if the line matches /}/ then exit sed
6. b XX -- jump to XX label
감사합니다! push/pop과 같은 기능이
감사합니다! push/pop과 같은 기능이 있었군요!
더 공부 해야겠습니다
Fever Pitch!
$ cat in.txt| perl -ne "print
sed -rn '/title1/, /}/ p'
sed -rn '/title1/, /}/ p' bigfile
댓글 달기