[질문] 쉘스크립트작성중 특정줄 어떻게 뽑아내죠?

sdtool의 이미지

rh - 8 에서 bash 로 쉘 스크립트를 짜고 있습니다.

어떤 파일의 몇번째줄을 replace 하는 방법이 도저히 생각이 나질 않네요.

생각이 아니라..특정 줄 부분을 프린트하는 방법조차 모르겠네요.

nl , cat 도 아닌것 같고요. ㅡ,.ㅡ

예를들어..

test.txt 의 파일이 아래와 같이 3줄짜리 파일이라치면.

#cat test.txt
haha
22
44

3번째줄 44를 55로 바꾸고 싶은데 어떻게 해야 되나요??

저 그리고 sed 에 대해 좀더 궁금한게 있는데요.

str1 = if $HTTPD ; then
str2 = if $HTTPD -f $CONFFILE; then

위두문장이 있습니다.

str1이 원본이고요 str2가 바뀔문장인데.

sed "s@if $HTTPD ; then@if $HTTPD -f $CONFFILE; then@g" ./apachectl > ./apachectl.temp
rm -f apachectl
mv apachectl.temp apachectl

역시나 안되네요. 이렇게 복잡(?)한 문장은 어떻게 치환해야 되는지..

알려주세요. 문자열 처리 정말 복잡하군요. ㅡ,.ㅡ

다시한번 답변 부탁드리겠습니다.

McKabi의 이미지

sdtool wrote:

#cat test.txt
haha
22
44

3번째줄 44를 55로 바꾸고 싶은데 어떻게 해야 되나요??

cat test.txt | sed -e '3s@44@55@'

Quote:

str1 = if $HTTPD ; then
str2 = if $HTTPD -f $CONFFILE; then

위두문장이 있습니다.

str1이 원본이고요 str2가 바뀔문장인데.

sed "s@if $HTTPD ; then@if $HTTPD -f $CONFFILE; then@g" ./apachectl > ./apachectl.temp
rm -f apachectl
mv apachectl.temp apachectl

역시나 안되네요. 이렇게 복잡(?)한 문장은 어떻게 치환해야 되는지..

$ cat t
blah blah
if $HTTPD ; then
blah blah
$ cat t | sed -e 's@if $HTTPD ; then@if $HTTPD -f $CONFFILE; then@g'
blah blah
if $HTTPD -f $CONFFILE; then
blah blah

따옴표와 몇몇 특수문자에 신경만 써 주면 별 문제 없습니다.

ㄲ ㅏ ㅂ ㅣ / M c K a b i / 7 7 r b i / T o D y

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.