쉘스크립팅 질문입니다. 파일을 수정하려고하는데..
글쓴이: 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가 제격이죠.
BEGIN { FS="," } { if ( NR == 행번호 ) { ... ... } ... }이런 식으로 컴마(,)를 필드의 구분자로, 개행문자를 레코드의 구분자로(기본값) 하여 텍스트 파일을 데이타베이스처럼 다룰 수 있으니까 어지간한 일은 가능합니다. 자세한 것은 awk manual을 참고하세요.
-----
http://monpetit.posterous.com/
http://monpetit.tistory.com/
그냥 vi에서 정규표현식을 사용하면..
:2,2s/[0-9]$/바꿀문자열
이렇게 하면 돼는데요. 이건 아시겠죠?
댓글 달기