ファイルの1行を置き換える方法は?

ファイルの1行を置き換える方法は?

foo2複数行の配列など、目的の出力に複数行の埋め込みを変更したいと思います
foo2。 1行に変更する方法

  • から:
$ cat file.txt
foo1=bar1
foo2=('bar10: some text here'
      'bar11: anther text here'
       ...
      'bar: final text here')
foo3=('bar3')
foo=1.2.33

  • 到着する:
foo1=bar1
foo2="bar10 bar11 .. bar"
foo3=('bar3')
foo=1.2.33

ベストアンサー1

すべてのUnixシステムのすべてのシェルでawkを使用し、...入力の行と..出力の文字列が実際の実際のデータには存在せず、周囲のテキストに似たテキストを表すためのものであるとします。

$ cat tst.awk
(val=="") && /.*\047$/ {
    tag = $0
    sub(/=.*/,"",tag)
    val = ""
}
tag != "" {
    split($0,f,/[\047:]/)
    val = (val == "" ? "" : val " ") f[2]
    if ( /\)$/ ) {
        print tag "=\"" val "\""
        tag = ""
    }
    next
}
{ print }

$ awk -f tst.awk file.txt
foo1=bar1
foo2="bar10 bar11 bar"
foo3=('bar3')
foo=1.2.33

おすすめ記事