列の単語の間にスペースがある場合は、二重引用符を追加してください。

列の単語の間にスペースがある場合は、二重引用符を追加してください。

テーブルからファイルを生成する必要があります。 sedを使用してデータを転送しています。テーブル列にスペースがある場合は、テキスト修飾子を使用したいと思います。

入力サンプル

Unites State | California | UNIX | ABC DE

期待される出力

"Unites State" | California | UNIX | "ABC DE"

ベストアンサー1

$ echo 'Unites State | California | UNIX | ABC DE' | sed -E 's/([^ |]+ +[^|]+)( +\||$)/"\1"\2/g'
"Unites State" | California | UNIX | "ABC DE"
  • 前には常にスペースがあるとします。|
  • -EEREを使用し、一部のsedバージョンでは-r
  • ([^ |]+ +[^|]+)空白なし、|文字なし、少なくとも1つの空白、次の|文字なし
  • ( +\||$)上記のパターンの後には少なくとも1つのスペースがあり、次の行の|終わりが続きます。
  • "\1"\2リクエストに応じて見積もり

おすすめ記事