bash 쉘스크립트 문자열 바꾸기 질문

onetree의 이미지

쉘스크립트를 만지기 시작한지 얼마 안 되었습니다.
아래와 같은 작업을 하려고 하는데 잘 되지 않아서 질문 드립니다.

아래와 같은 파일에서 usa문단에 있는 name항목의 내용을, 변수로 입력받아서, 으로 바꾸려고 합니다.
조건은, name의 내용은 수시로 바꿀 일이 생깁니다. comment의 내용은 변경없이, name의 내용만 바꾸려고 합니다.
-------------------------------------------------
파일의 일부
-------------------------------------------------
[korea]
name=jong soo kim ' comment
add=daejeon ' comment

[usa]
name=tom jones ' comment
add=ohio ' comment
-------------------------------------------------

제가 아는 것이 sed 명령어라서 이것을 이용해서, 아래와 같이 라인 전체의 내용을 바꾸려고 해 보았는데 생각대로 안됩니다.
sed -i "/usa/,/name/tom/ c name=${변수} 'comment" file

name에 있는 내용(tom jones)만 ${변수}로 바꿀수 있으면 가장 좋겠지만,

안되면 그 라인 전체를 다시 바꾸는 방법도 괜찮습니다.

초보임을 감안하여 쉽게 설명해 주시면 더욱 감사하겠습니다.

p.s. 저의 설명이 부족하여 잘 이해가 안 되시는 것 같아, 다시 작성했습니다.

익명 사용자의 이미지

어떤 초기 상태에서 어떤 입력을 받아서 뭘 하고 싶은 것인지 구체적으로 예를 들어서 설명해보세요.

지금 설명은 무의미한 문자열과 메타 변수들이 뒤섞여서 뭘 하고 싶다는 건지 이해가 어렵습니다.

꼭 "aaaaaa bbbb ccccc ddddd 'comment 를 (원래있던거) (바뀐거) (더좋은거)로 바꿔주세요" 이런 느낌입니다.

황병희의 이미지

스샷 올립니다~

댓글 첨부 파일: 
첨부파일 크기
Image icon Screenshot from 2020-03-18 20-26-08.png349.49 KB

--
^고맙습니다 감사합니다_^))//

황병희의 이미지

(bionic)soyeomul@localhost:~/111$ ./11.py 봉테일
 
[usa]
name=봉테일 ' comment
add=ohio ' comment
 
(bionic)soyeomul@localhost:~/111$ ./11.py "마이클 잭슨"
 
[usa]
name=마이클 잭슨 ' comment
add=ohio ' comment
 
(bionic)soyeomul@localhost:~/111$ ./11.py "토발즈 행님과 리눅스 커널 기여자들^^^"
 
[usa]
name=토발즈 행님과 리눅스 커널 기여자들^^^ ' comment
add=ohio ' comment
 
(bionic)soyeomul@localhost:~/111$ 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
import sys
 
변수 = sys.argv[1]
 
text = """
[usa]
name={0} ' comment
add=ohio ' comment
""".format(변수)
 
print(text)

[우분투 18.04 파여폭스 나비에서 작성했어요]

--
^고맙습니다 감사합니다_^))//

onetree의 이미지

새로운 과제를 주셔서 한번 살펴보도록 하겠습니다.

그런데, 이것을 쉘스크립트에서 가져다 사용할수도 있는지요?

파이썬3의 이미지

파이썬3 가 필요하구요 쉘에서 실행권한 주고 실행하심 됩니다.

[크롬북에서 적어요~]

onetree의 이미지

공부해 보겠습니다.

댓글 달기

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