sedを使用して任意の文字列を除くすべてを削除する方法

sedを使用して任意の文字列を除くすべてを削除する方法

皆さん、問題が生じました。

サンプルデータがあります

2021-04-15 07:47:34        629 deveon3/10d/023aad3eab0a035aef3771c9220940e200a00000000242e5_0.gt

私だけが必要

023aad3eab0a035aef3771c9220940e200a00000000242e5

頑張る

grep _0.gt test.txt | sed "s/.* \(.*\) \(...\)\/\(.*\)_0.gt/\1|\2|\3/g"  > test.dat

しかし、結果は同じであり、違いはありません。

私が探しているのは私が持っているものです。

2018-10-20 19:34:23    1668004 000/02001386c62785e42231c679c614228a04000090022ff989_0.gt
2018-10-20 21:18:58    1694936 000/02001386c62785e72231c679c614228a040000000232d761_0.gt
2018-10-20 23:59:40    1828575 000/020057386c6278e72231c679c644228a04000000023696fb_0.gt

出力を受け取る

1668004|000|02001386c62785e72231c679c614228a04000000015528dd
1694936|000|02001386c62785e72231c679c614228a040000000166bca7
1828575|000|02001386c62785e72231c679c614228a04000000022f8f33

そうでなければ

02001386c62785e72231c679c614228a04000000015528dd
02001386c62785e72231c679c614228a040000000166bca7
02001386c62785e72231c679c614228a04000000022f8f33

私は何が間違っていましたか?

ベストアンサー1

awk -F'[_/ ]+' '{ print $5 }' infile

awk -F'[_/ ]+' -v OFS="|" '{ print $3, $4, $5 }' infile

おすすめ記事