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