1

重複の可能性:
ファイル内の括弧で始まる列と括弧で終わる列を削除するにはどうすればよいですか

ファイル内の括弧の間で文字列を連結するにはどうすればよいですか?
期待される入力 - input.txt の内容

ABC EFG    
BCD (AB CD) EFG
DEF BCD AB(ABC)  

期待される出力 -- output.txt の内容

ABC EFG    
BCD (ABCD) EFG    
DEF BCD AB(ABC)
4

1 に答える 1

1

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したがって、他のすべてのフィールドで( ) スペースをグローバルに置き換えます。
  • 最後に括弧を再挿入します。
于 2012-07-27T22:30:53.887 に答える