쉘스크립트로 파일에디트는 어떻게 하죠?

lowid의 이미지

사실 리눅스 깔고 지웠다하면서 설정하는게 귀찮아서..

아예 간단하게 자동설정 스크립트 같은걸 만들어볼려고하는데요..

근데 제가 vi 만 쪼금 알뿐이라서.. 도움을 구합니다..

(그러니까.. 스크립트에서 자동으로 파일을 수정해주어야합니다..)

1,예를 들어서 /etc/rc.conf 라는 파일에서

Locale= 이란 부분을 Locale=Ko_KR,UTF-8

이런식으로 바꿀려면 어떻게 스크립트를 만들어야하죠?

(sed로 해봤지만.. 그저 cat 했을때 나온 결과만 바꾸는거 뿐이라서..ed로 가능할려나요?)

2,이미 생성된 파일(또는 파일을 만들어서) 에 내용을 추가하려면 어떻게 해야하죠?

~/.Xmodmap에 xmodmap -e "keycode~" 이런걸 추가시키려면 어떻게 명령을 내려야하나요?

plus.히어 도큐먼트라는게 뭐죠?

lacovnk의 이미지

1. cat 해서 바꿔서 화면(표준출력)으로 나온다면, > outputfile 로 파일로 출력을 변경해서, 파일에 쓸 수 있습니다.

2. > 대신 >> 를 하면 덧붙여씁니다. > 로 쓰면 덮어씁니다. 조심하셔야합니다.

3. 히어 도큐먼트는 모르겠습니다. man 명령어는 이미 알고 계실 것 갈습니다;

lowid의 이미지

일단 echo 로 해결했습니다..

(에이 몇분만 일찍 말해주시지~ 제가 막 해결하니까 글올리셧네요..하참.. 시간차~)

하지만 역시 echo 안쓰고. 화면에 안뿌리고 바로 하는 방법은 없는걸까요..

---------------------------------------------
아치리눅스좀 써주세요
-> 아치리눅스 유저 좀 꼬셔오세요. 1인당 10명!

lacovnk의 이미지

1. 아, 직접 수정하는 것이라는 뜻이군요? 그건 잘 모르겠습니다; 쉘스크립트에서라면, 출력하고 다시 쓰는 것이 일반적이라고 알고 있습니다.

2. echo를 사용하세요 :)

echo 'blabla' >> /etc/bla

단 따옴표 등 잘 처리해주셔야겠지요?

lacovnk의 이미지

아, 그리고 vi를 창을 안띄우고 명령을 처리하는 방법이 있던 걸로 기억합니다.

dude7853의 이미지

저는 sed로 파일을 고칠때는 이렇게 합니다.

# sed 's/before/after/g' target > target~
# cp target~ target

윤봉환의 이미지

# 예를 들어 아래와 같이 함수를 만들고;

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
}

도움이 되었기를..

放下着-----
내려놓으려는 마음도 내려놓기

pung96의 이미지

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가 편합니다.

doodoo의 이미지

방금 테스트 해 봤는데.....
centos 4.2입니다.

단순히...

sed -i '/locale\=/ s/\=.*/\=utf8/' testfile

했더니...그냥 testfile만 달랑 바뀌었습니다....

pung96의 이미지

백업파일을 만드시려면 i.bak 이런식으로 해야합니다.
man페이지를 보시면
-i[SUFFIX] 라고 나와있습니다.

doodoo의 이미지

앞에 한자가 더 있었군요..ㅜㅠ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.