ファイル内の括弧の間で文字列を連結するにはどうすればよいですか?
期待される入力 - input.txt の内容
ABC EFG
BCD (AB CD) EFG
DEF BCD AB(ABC)
期待される出力 -- output.txt の内容
ABC EFG
BCD (ABCD) EFG
DEF BCD AB(ABC)
ファイル内の括弧の間で文字列を連結するにはどうすればよいですか?
期待される入力 - input.txt の内容
ABC EFG
BCD (AB CD) EFG
DEF BCD AB(ABC)
期待される出力 -- output.txt の内容
ABC EFG
BCD (ABCD) EFG
DEF BCD AB(ABC)
awk
括弧を区切り記号として使用すると、次のようにこれを行うことができます。
awk -F'[)(]' -v OFS="" '
NF == 1
NF > 1 {
for(i=2; i < NF; i+=2) {
gsub(" +", "", $i)
$i = "("$i")"
}
print
}'
NF
フィールド数を指定します。
NF == 1
括弧なしを意味します。NF > 1
は、括弧付きの少なくとも 1 つのフィールドを意味します。gsub
したがって、他のすべてのフィールドで( ) スペースをグローバルに置き換えます。