次のように処理した.csvデータファイルがあります。
-------------PATH AND FILE NAME--------,USER--,DATE-----,TIME---,STATUS
/Proj/abc/app/app_pit/conf/HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
/Proj/abc/app/app_pit/conf/test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
/Proj/abc/app/app_pit/conf/test_bkfs.apx,uHarry,/26/2018,9:47:03,OK
ギイ! 「パスとファイル名」列を次のように分類してもらうというフィードバックと要求を受け取るまで:
LB,-PROJ---,FILENAME----,USER--,DATE-----,TIME---,STATUS
app,app_pit,HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
app,app_pit,test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
app,app_pit,test_bkfs.apx,uHarry,/26/2018,9:47:03,OK
すべてのレコードで「/Proj/abc」を省略し、パスから「conf」を削除します。
私はさまざまなawk、sed、trなどのアプリケーションを試してみましたが、これを実行できないようです。たぶんここで循環ロジックを使用する必要がありますか?
ベストアンサー1
ヘッダーを無視し、ファイルのテキストに行の先頭にスペースがないとします(あなたの質問にあるように)。
$ sed -e 's@/Proj/abc/\([^/]*\)/\([^/]*\)/conf/@\1,\2,@' file
-------------PATH AND FILE NAME--------,USER--,DATE-----,TIME---,STATUS
app,app_pit,HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
app,app_pit,test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
app,app_pit,test_bkfs.apx,uHarry,/26/2018,9:47:03,OK
このsed
コマンドは、文字列(さまざまな可能性があると思います)をキャプチャし、パスapp
のapp_pit
最後のビットを独自のフィールドに保ちながら、元のデータのパスをカンマ区切りの文字列に置き換えます。
新しいファイルにリダイレクトし、必要に応じてヘッダーを変更します。