Programming,  컴퓨터와 인터넷

[Text Processing] tab을 space로 변환하기

[ CnUnix ] in KIDS
글 쓴 이(By): flesh (* 악 동 *)
날 짜 (Date): 2000년 5월 11일 목요일 오전 10시 24분 47초
제 목(Title): [질문] 스크립트 tab2space

자꾸 질문만 하게 되서 죄송합니다. 하지만 이렇게 제가 닭질 좀 해보고…. 그리고 모르는 것 질문올려서 sed랑 awk쓰는 것이 책 보는 것보다 훨 도움이 되더라고요. ^^;;

대충 regular expression은 쓸줄 아는데 응용이 안되네요. -_-;; (질문) 화일에서 모든 라인의 모든 tab을 space 4개로 바꾸고 싶습니다. vi 에디터의 경우에는 ex모드에서 1,$s/ / /g (앞의 pattern은 tab인데 여기서 안먹네요. ^^)로 바꾸어 줄 수 있었든데… 이것을 sed를 써서 하려니 잘 안됩니다. 첫라인에서 마지막 라인을 어떻게 알려주죠? s 이하의 스트링은 substitution 인 것은 아는뎅…. 흑흑.

고수님들의 부탁 바랍니다. 미리 감사드리고요.. awk버전도 좀 알려주세여. 히히히히.
그럼 행복하십시요.

[ CnUnix ] in KIDS
글 쓴 이(By): missile (한두세네명)
날 짜 (Date): 2000년 5월 11일 목요일 오후 12시 23분 35초
제 목(Title): Re: [질문] 스크립트 tab2space

expand 명령을 쓰세요…

[ CnUnix ] in KIDS
글 쓴 이(By): flesh (* 악 동 *)
날 짜 (Date): 2000년 5월 11일 목요일 오후 01시 02분 34초
제 목(Title): Re: [질문] 스크립트 tab2space

이거는 걍 바꿔주는 거자나엽. 헤헤. 당장 바꾸는 데는 이게 편하지만.

그래두 수고스러우셔도… 가르침을 주옵소서… sed에 대하여..

스승님들…

쿄쿄…

[ CnUnix ] in KIDS
글 쓴 이(By): whbear (서병국)
날 짜 (Date): 2000년 5월 12일 금요일 오후 01시 53분 08초
제 목(Title): Re: [질문] 스크립트 tab2space

이건 굳이 awk로 할 필요는 없을 듯 한데. sed로 다음과 같이 쉽게 할 수 있습니다.

sed -e 's/탭을 직접 치고/스페이스4번 치고/g'

하면 됩니다.

g는 global하게 substitute한다는 의미. 암도 대답이 없길래…

O’Reilly의 sed & awk책 보면 잘 나와있으니까 함 보세요.

[ CnUnix ] in KIDS
글 쓴 이(By): flesh (* 악 동 *)
날 짜 (Date): 2000년 5월 14일 일요일 오후 07시 09분 18초
제 목(Title): Re: [질문] 스크립트 tab2space

네.. 저두 그렇게 했습니다.

사실 expand라는 명령어도 모르고…. 걍 sed 로 첨엔 '1,$s/tab/space 3번/g' 로 했다가 안되서…. s/ / /g로요. 근데 안먹히더라구요.. T.T

그래서 expand를 써서 심심풀이 스크립트를 만들긴 했지만… 흑흑. 음. 다시해보고 제가 멀잘못했나 올려볼께요. 답장 주셔서 왕감사~!

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 5월 15일 월요일 오전 10시 53분 29초
제 목(Title): Re: [질문] 스크립트 tab2space

flesh님, 이왕이면 perl을 쓰시는 것이 어떨까요? tab2space니 space2tab이니 하는 정규표현식에 관련된 문제라면 perl로는 해결하지 못할 문제가 없습니다. 물론 C도 정규표현식 라이브러리를 가져다 쓰면야 되겠지만, 불편하겠죠.

sed & awk는 전혀 다른 언어를 두 개 배우는 것인데 반해서, 두 개 언어를 합친다고 해서 표현력이 커진다고 말하기가 어렵지 않습니까?

개인적인 생각이긴 하지만, C/C++이나 Java 코더라면 perl은 비슷비슷하니깐 금방 배울 수 있고, 그 표현력의 방대함에 놀라게 됩니다. 게다가 스크립트 언어처럼 쉽게 쓸 수 있다는 점도 강점이죠.(거꾸로 말하면 큰 개발에는 다소 부적절하기도 하지만요)

어떤 언어를 쓰느냐는 프로그래머의 취향이라서 누가 이래라저래라할 수는 없는 거지만, 목적에 보다 적합한 언어가 따로 있는 건 사실이라는 생각이 듭니다. 저는 텍스트처리를 주로 하는 작업은 모두 perl로 스크립트를 만듭니다. 그리고 더 간단한 작업은 셸스크립트로, 더 어려운 작업은 C로 개발하죠. ^^;

[ CnUnix ] in KIDS
글 쓴 이(By): flesh (* 악 동 *)
날 짜 (Date): 2000년 5월 15일 월요일 오후 12시 40분 57초
제 목(Title): Re: [질문] 스크립트 tab2space

네. perl두 약간 만 맛만 봐서 얼마나 멋진 녀석인지는 알 수 있지만. 도통 어떻게 돌아가먹는 회사인지 script랑은 아예 담을 쌓는군요. -_-;;

유닉스 환경에서 하는 일이라고는 고작 다들 vi만 써요. 원래 tab2sp를 짜보려고 했던 의도는….

알고 있던 regular expr 테스트 하는 것이 아니라 indentation이었답니다. indent란 툴이 있어도 쓰지 않고, vim(vi improved)라는 훌륭한 에디터도 안쓰고.. 일일히 스페이스 네칸 치랍니다. -_-;;

물론 나중에 현장에서야 내맘대로 겠지만, 여기 3달동안 있어야 하는 교육장에서 그짓을 하고 있으려니 답답해서요. -_-;;

에구. perl도 좋죠~ ^^;; 쓸떼기 없는 글로 키즈의 CnUnix가 어지럽혀졌네요. 큭큭. 조언 주셔서 캄솨~!

[CnUnix ] in KIDS
글 쓴 이(By): cdpark (박종대)
날 짜 (Date): 2000년 5월 15일 월요일 오후 04시 09분 46초
제 목(Title): Re: [질문] 스크립트 tab2space

expand -t 4 filename.c

면 끝 아닌가요?


박..

답글 남기기