複数行に渡っても括弧の間にある内容を変更してください。

複数行に渡っても括弧の間にある内容を変更してください。

Bashまたはシェルスクリプトを使用して交換したい何もない2つの括弧の間にスペースがあります。 2つの括弧の間のテキストは複数行にすることができます。たとえば、次のようになります。

myFunction (line0

line1

line2

line3

line4) 

次に変換したいです。

myFunction ( )

ベストアンサー1

@Sergの答えを受けbashて、1行に2〜3つのプロセスの代わりにbash組み込み機能を使用するように変換します。このプロセスは安いですが、無料ではありません!

#!/bin/bash
# Use shell builtins, read, true, false, printf
flag=false
while IFS= read -r line
do
    case "$line" in
    (*"("*) flag=true ;;
    esac

    if $flag
    then
        line=${line//line/newline} 
    fi

    printf "%s\n" "$line"

    case "$line" in
    (*")"*) flag=false ;;
    esac

done < "$1"

おすすめ記事