特定のフィールドの特殊文字を置き換える

特定のフィールドの特殊文字を置き換える

特定のフィールドの特殊文字を置き換える方法は?

入力する

xxxx,11/2019,xxx

出力

xxxx,11,2019,xxx

ご覧のとおり、/in に,変更したいと思います$2

この目標を達成する方法は?

ベストアンサー1

awk -F, -v OFS=, '{gsub(/\//,",",$2); print}'

これは、グローバル正規表現検索を実行し、フィールド2を置き換えるawk関数を使用します。gsub()

/$ 2の最初の項目のみを置き換えるには、sub()代わりにを使用してくださいgsub()

注:デフォルトの出力フィールド区切り文字OFSは空白です。これを,(入力フィールドの区切り記号と同じFS)に設定する必要があります。それ以外の場合は、printスペースで区切られたすべてのフィールドが出力されます。

GNUのマニュアルページからawk

gsub(r, s [, t])

r正規表現に一致する文字列の各部分文字列に対して文字t列を置き換え、s置換回数を返します。

指定されていない場合はt$ 0が使用されます。

代替テキストは&実際の一致テキストに置き換えられます。

テキストを取得するために使用されます\&&。 (次のように入力する必要があります\\&。参照)GAWK:効率的なAWKプログラミング代替テキストの&およびバックスラッシュ規則のより完全な説明sub()。 )gsub()gensub()

おすすめ記事