1行のフィールドから値を抽出し、その値を次の行に追加します。

1行のフィールドから値を抽出し、その値を次の行に追加します。

ファイルにこの行があります。

x;x;x;x;x;x;cmd="lbk_addcolumn TABLE_NAME_1 COLUMN_X";x;x;x;x

x;x;x;x;x;x;cmd="lbk_dropcolumn TABLE_NAME_2 COLUMN_Y";x;x;x;x

ファイルの「cmd」フィールドを次のように置き換えたいと思います。

x;x;x;x;x;x;cmd="ColumnAdded TABLE_NAME_1 COLUMN_X || lbk_addcolumn TABLE_NAME_1 COLUMN_X";x;x;x;x

x;x;x;x;x;x;cmd="ColumnDropped TABLE_NAME_2 COLUMN_Y || lbk_dropcolumn TABLE_NAME_2 COLUMN_Y ";x;x;x;x

どうすればいいですか?

ベストアンサー1

次のBashスクリプトを試してみてください。

while read ln; do
    out=`sed 's/\([^"]*\)"\([^"]*\)\(.*\)/\1"\2 || \2\3/' <<< "$ln"`
    out=`sed -e 's/lbk_addcolumn/ColumnAdded/' -e 's/lbk_dropcolumn/ColumnDropped/' <<< "$out"`
    echo "$out"
done < input.txt

input.txtあなたの行を含む

おすすめ記事