쉘스크립팅 질문입니다. 파일을 수정하려고하는데..
글쓴이: jenix / 작성시간: 월, 2003/09/29 - 10:13오후
안녕하세요..
다음과 같은 파일이 있습니다..
1,Title1,user1,0
2,Title2,user2,3
3,Title4,uesr3,3
....
이런 내용을 가지고 있는 텍스트 화일이 있을때..
n째 줄에서 마지막 숫자 부분만 변경하고 싶거든요..
어떻게 짜야할까요..
제가 생각한건.. grep -n 으로 바꾸고 싶은 줄의 행을 변수에 저장해두고..
예를 들어 두번째 줄의 마지막 3을 4 로 바꾼다치면
echo 2,Title2,user2,5 를 리다이렉트해서 2번째줄 대신에 집어넣어버리는
그런 생각을 하고 있거든요?
제가 모르겠는건..
텍스트 화일에서 n 행을 통째로 교체한다던지 아니면
마지막 것만 어떻게 수정 가능한지..하는건데..
sed 등에 정규식엔.. 변수를 쓸수가 없더라구요..
$linenum 이런식으로 해도.. 이게 그냥 바꿀 문자열(?) 로만 인식으로 하고
변수로 인식을 못해서..
도와주세요 ㅠㅜ
Forums:
텍스트 파일을 변수로 분해하거나 하는 일은 perl, python 등의
텍스트 파일을 변수로 분해하거나 하는 일은 perl, python 등의 본격적인 스크립트를 써도 좋습니다만, 이런 일에는 awk가 제격이죠.
이런 식으로 컴마(,)를 필드의 구분자로, 개행문자를 레코드의 구분자로(기본값) 하여 텍스트 파일을 데이타베이스처럼 다룰 수 있으니까 어지간한 일은 가능합니다. 자세한 것은 awk manual을 참고하세요.
-----
http://monpetit.posterous.com/
http://monpetit.tistory.com/
그냥 vi에서 정규표현식을 사용하면..
:2,2s/[0-9]$/바꿀문자열
이렇게 하면 돼는데요. 이건 아시겠죠?
댓글 달기