web-dev-qa-db-ja.com

awkで引用文字を印刷する方法

ファイルがありますstr.txt以下のサンプルレコード。

31,2713810299,1,11-Aug-15 19:52:10
32,2713810833,1,11-Aug-15 21:36:18

次のようにawkで出力を印刷したいと思います。

cat str.txt|awk -F, '{print substr("$4",1,9)}' -

出力は次のようになります。

'11-Aug-15' 
'11-Aug-15' 
5
user3548033

POSIXly:

awk -F'[ ,]' -v q="'" '{print q$4q}' <file
1
cuonglm

少し異なるアプローチ、POSIX Awkの場合:

awk -F'[, ]' '{printf "\047%s\047\n", $4}' file
'11-Aug-15'
'11-Aug-15'
0
jasonwryan

次のようにawkコマンドを使用できます。

cat str.txt|awk -F, '{print substr($4,1,9)}' -

次の出力を取得するには:

11-Aug-15
11-Aug-15

行の最初と最後に一重引用符が必要な場合:

cat str.txt|awk -F, '{printf "\047%s\047\n",substr($4,1,9)}' -

次の出力を取得するには:

'11-Aug-15'
'11-Aug-15'
0
snoop