行の一部を取得して同じ行に追加

行の一部を取得して同じ行に追加

次の19,000行のファイルがあります。

a96abbb5da0985983e113a9a7484c063  management/modules/membership/file1
d7f7dd7e3ede3e323fc0e09381f16caf  management/modules/invoices/path/file2

しかし、行の最後にモジュール名を追加したいと思います。結果は次のとおりです。

a96abbb5da0985983e113a9a7484c063  management/modules/membership/file1  membership
d7f7dd7e3ede3e323fc0e09381f16caf  management/modules/invoices/path/file2  invoices

sed例や同様のものを使ってこれを行う方法はありますか?を使用するのが最善です-i

モジュール名は常に次の形式でパスにあります。modules/MODULENAME

ベストアンサー1

awk解決策。

$ awk -F/ '{print $0"  "$3}' file
a96abbb5da0985983e113a9a7484c063  management/modules/membership/file1  membership
d7f7dd7e3ede3e323fc0e09381f16caf  management/modules/invoices/path/file2  invoices
$

gnu awk を使用すると、2 番目のファイルに出力せずに内部機能を使用できます。例えばawk -i inplace -F/ '{print $0" "$3}' file

おすすめ記事