次の記録があります。
2011-05-29 17:51:34 => 'HS|CMGC|RN431|CI13950|CH7-4a37-afe2-acabfc9d262d|DA110529|TI175133|'
最終出力は次のようになります。
2011-05-29 17:51:34 CI13950
次のようにカットを使用して各部分を取得できます。
$ cut -c 1-19
2011-05-29 17:51:34
$ cut -d '|' -f 4
CI13950
2つを組み合わせることはできません。
$ cut -c 1-19 -d '|' -f 4
cut: only one type of list may be specified
どんな提案がありますか?
ベストアンサー1
一カットが私の役割を果たします。さらに減らすために2回実行することもできますが、次のようなcut
ものを使用する必要があるようです。awk
、sed
またはperl
代わりに。
複数の実行の例cut
:
cut -f 2 | cut -c 3-6
使用例はperl
データラインで動作します。
perl -pne "s/=> '([^|]+\|){3}([^|]+)/\2/g"
sed
コメントにあるFredのバージョンは次のとおりです。
sed -re "s/=> ([^|]*\|){3}([^|]*).*/\2/"