쉘스크립트로 파일에디트는 어떻게 하죠?
글쓴이: lowid / 작성시간: 목, 2006/05/11 - 9:38오후
사실 리눅스 깔고 지웠다하면서 설정하는게 귀찮아서..
아예 간단하게 자동설정 스크립트 같은걸 만들어볼려고하는데요..
근데 제가 vi 만 쪼금 알뿐이라서.. 도움을 구합니다..
(그러니까.. 스크립트에서 자동으로 파일을 수정해주어야합니다..)
1,예를 들어서 /etc/rc.conf 라는 파일에서
Locale= 이란 부분을 Locale=Ko_KR,UTF-8
이런식으로 바꿀려면 어떻게 스크립트를 만들어야하죠?
(sed로 해봤지만.. 그저 cat 했을때 나온 결과만 바꾸는거 뿐이라서..ed로 가능할려나요?)
2,이미 생성된 파일(또는 파일을 만들어서) 에 내용을 추가하려면 어떻게 해야하죠?
~/.Xmodmap에 xmodmap -e "keycode~" 이런걸 추가시키려면 어떻게 명령을 내려야하나요?
plus.히어 도큐먼트라는게 뭐죠?
Forums:
1. cat 해서 바꿔서
1. cat 해서 바꿔서 화면(표준출력)으로 나온다면, > outputfile 로 파일로 출력을 변경해서, 파일에 쓸 수 있습니다.
2. > 대신 >> 를 하면 덧붙여씁니다. > 로 쓰면 덮어씁니다. 조심하셔야합니다.
3. 히어 도큐먼트는 모르겠습니다. man 명령어는 이미 알고 계실 것 갈습니다;
일단 echo 로
일단 echo 로 해결했습니다..
(에이 몇분만 일찍 말해주시지~ 제가 막 해결하니까 글올리셧네요..하참.. 시간차~)
하지만 역시 echo 안쓰고. 화면에 안뿌리고 바로 하는 방법은 없는걸까요..
---------------------------------------------
아치리눅스좀 써주세요
-> 아치리눅스 유저 좀 꼬셔오세요. 1인당 10명!
1. 아, 직접 수정하는
1. 아, 직접 수정하는 것이라는 뜻이군요? 그건 잘 모르겠습니다; 쉘스크립트에서라면, 출력하고 다시 쓰는 것이 일반적이라고 알고 있습니다.
2. echo를 사용하세요 :)
echo 'blabla' >> /etc/bla
단 따옴표 등 잘 처리해주셔야겠지요?
아, 그리고 vi를 창을
아, 그리고 vi를 창을 안띄우고 명령을 처리하는 방법이 있던 걸로 기억합니다.
sed를 사용할때는 임시로 파일을 만들어 주면 됩니다.
저는 sed로 파일을 고칠때는 이렇게 합니다.
# sed 's/before/after/g' target > target~
# cp target~ target
http://jungjun.net
ed 명령을 사용하세요.
# 예를 들어 아래와 같이 함수를 만들고;
function exprReplace() {
ed - -s ${SourceFile} << de
%s/${1}/${2}
w
de
}
# microsoft라는 문자열을 Linux로 바꾸려면 :
exprReplace microsoft Linux
특정 문자열이 들어있는 라인은 모두 지우는 함수는;
##
function cutLine() {
ed - -s ${SourceFile} << de
%g/^${1}\$/d
w
de
}
도움이 되었기를..
放下着-----
내려놓으려는 마음도 내려놓기
sed에도 -i 옵션이
sed에도 -i 옵션이 있습니다.
sed -i.bak "~~~~~~" filename
이렇게 하면 filename 을 filename.bak라고 저장하고 표준 출력을 filename로 저장하죠.
그래서 n이 아니라 p 옵션을 줘야 했던 걸로 기억합니다.
제가.. perl을 배운 이후로 sed를 안써봐서 잘은 기억이 안납니다.
그리고 ed나 vi의 경우 상당히 강력하고 유연하게 커맨드라인에서 편집을 할수 있습니다.
단점이라면 perl이나 awk/sed에비해 느립니다. 많은 파일을 대상으로 할때는 꽤차이가 나지요
대신에 vi나 ed로 하면 아주 간편한 그런 경우가 꽤 있습니다.
예를 들어 마지막 몇줄.. 이런건 perl이나 awk/sed로 하려면 신경을 써야하지만 ed에선 단순하지요.
속도가 중요하지 않고 파일이 작다면 많은 경우 ed가 편합니다.
헉 백업파일 안만드는데요....
방금 테스트 해 봤는데.....
centos 4.2입니다.
단순히...
sed -i '/locale\=/ s/\=.*/\=utf8/' testfile
했더니...그냥 testfile만 달랑 바뀌었습니다....
백업파일을
백업파일을 만드시려면 i.bak 이런식으로 해야합니다.
man페이지를 보시면
-i[SUFFIX] 라고 나와있습니다.
아~~ 앞의 내용을 안봤군요
앞에 한자가 더 있었군요..ㅜㅠ
댓글 달기