sed:最後のバックスラッシュとコンマの間のすべてのデータを取得して置き換えます。

sed:最後のバックスラッシュとコンマの間のすべてのデータを取得して置き換えます。

以下のようにcsv形式のデータがあります。

F1309-042543,07/14/09 01:39:25,N/A,C:\windows\system32\netsh.exe,N/A,True
F1309-042543,11/21/10 03:24:02,N/A,C:\Windows\System32\networkexplorer.dll,N/A,False
F1309-042543,07/14/09 01:38:53,N/A,C:\windows\system32\scrnsave.scr,N/A,True
F1309-042543,11/21/10 03:25:10,N/A,C:\windows\SYSTEM32\WISPTIS.EXE,N/A,True
F1309-042543,05/03/14 22:05:42,N/A,C:\windows\ccmcache\4t\SafeNet High Assurance Client (x64) 2.12.009.exe,N/A,True

4番目のフィールド(Windowsパス)に移動してプロセス名(最後の「\」文字、次のコンマまで)を取得し、そのプロセス名をコンマで区切って独自のフィールドとして追加するにはどうすればよいですか。最終結果は次のとおりです。

F1309-042543,07/14/09 01:39:25,N/A,C:\windows\system32\netsh.exe,netsh.exe,N/A,True
F1309-042543,11/21/10 03:24:02,N/A,C:\Windows\System32\networkexplorer.dll,networkexplorer.dll,N/A,False
F1309-042543,07/14/09 01:38:53,N/A,C:\windows\system32\scrnsave.scr,scrnsave.scr,N/A,True
F1309-042543,11/21/10 03:25:10,N/A,C:\windows\SYSTEM32\WISPTIS.EXE,WISPTIS.EXE,N/A,True
F1309-042543,05/03/14 22:05:42,N/A,C:\windows\ccmcache\4t\SafeNet High Assurance Client (x64) 2.12.exe,SafeNet High Assurance Client (x64) 2.12.exe,N/A,True

つまり、Windowsパスからプロセス名を取得し、CSVで独自のフィールドにしたいと思います。私はsedがこれを行うツールだと思いますが、どうするかはよくわかりません。とても感謝しています。

答え1

そしてsed

sed 's/.*\\\([^,]*,\)/&\1/' file

出力:

F1309-042543,07/14/09 01:39:25,N/A,C:\windows\system32\netsh.exe,netsh.exe,N/A,True
F1309-042543,11/21/10 03:24:02,N/A,C:\Windows\System32\networkexplorer.dll,networkexplorer.dll,N/A,False
F1309-042543,07/14/09 01:38:53,N/A,C:\windows\system32\scrnsave.scr,scrnsave.scr,N/A,True
F1309-042543,11/21/10 03:25:10,N/A,C:\windows\SYSTEM32\WISPTIS.EXE,WISPTIS.EXE,N/A,True
F1309-042543,05/03/14 22:05:42,N/A,C:\windows\ccmcache\4t\SafeNet High Assurance Client (x64) 2.12.009.exe,SafeNet High Assurance Client (x64) 2.12.009.exe,N/A,True

ちなみに、元のファイルには^Mありません。\n

答え2

期待される結果がファイルの内容と同じように見えるので、100%明確ではありませんが、試してみましょう。

このリストにファイル名のみが必要な場合:

cat thebigfile.csv | rev | cut -d'\' -f1 | rev | cut -d',' -f1 

結果は次のとおりです。

netsh.exe
networkexplorer.dll
scrnsave.scr
WISPTIS.EXE
SafeNet High Assurance Client (x64) 2.12.exe

これは役に立ちますか?

関連情報