awkで、「-F」などで一度特定の文字で区切ったあと、特定の列だけ更に別の文字で区切りたい時がある。
そういった場合、以下のように「split」で対象の列を区切って値を配列に入れてやれば良い。
例)一度目は「,」で、二度目は「|」で文字列を区切る場合
awk -F ',' '{split($2, arr, "|"); print $1 arr[2]}' sample.txt
[root@BS-PUB-CENT7-01 ~]# cat /tmp/sample.txt
2016/05/12|00:00:00,ls -la | grep aaa,245
2016/05/12|00:00:02,ls -la | grep bbb,222
2016/05/12|00:00:04,ls -la | grep ccc,112
2016/05/12|00:00:06,ls -la | grep ddd,192
[root@BS-PUB-CENT7-01 ~]# awk -F ',' '{split($2, arr, "|"); print $1","arr[2]}' /tmp/sample.txt
2016/05/12|00:00:00, grep aaa
2016/05/12|00:00:02, grep bbb
2016/05/12|00:00:04, grep ccc
2016/05/12|00:00:06, grep ddd