簡體   English   中英

尋找awk命令在行尾添加文件名

[英]Looking for awk command to append filename at end of line

我有一個帶文件名的文本文件,我希望將其動態附加到每行的末尾。 例如,我想要以下內容:

/home/danrothaudiodsp/kaldi-trunk/egs/voxforge/s5/voxforge/extracted/1028-20100710-hne/wav/ar-01.wav 

/home/danrothaudiodsp/kaldi-trunk/egs/voxforge/s5/voxforge/extracted/1028-20100710-hne/wav/ar-02.wav 

成為:

/home/danrothaudiodsp/kaldi-trunk/egs/voxforge/s5/voxforge/extracted/1028-20100710-hne/wav/ar-01.wav /home/danrothaudiodsp/gfcc_train/ar-01.gfcc

/home/danrothaudiodsp/kaldi-trunk/egs/voxforge/s5/voxforge/extracted/1028-20100710-hne/wav/ar-02.wav /home/danrothaudiodsp/gfcc_train/ar-02.gfcc

這需要迭代一個包含許多這樣的行的大文本文件。

我已經有以下awk命令:

awk '{$2="/home/danrothaudiodsp/gfcc_train/" OFS $2} 1' file > newfile 

但我正在尋找在gfcc_train之后的最后一個'/'之后填寫的值。

$ awk '{fname=$0; sub(/.*\//,"",fname); sub(/\.[^.]+$/,"",fname); print $0, "/home/danrothaudiodsp/gfcc_train/" fname ".gfcc"}' file
/home/danrothaudiodsp/kaldi-trunk/egs/voxforge/s5/voxforge/extracted/1028-20100710-hne/wav/ar-01.wav /home/danrothaudiodsp/gfcc_train/ar-01.gfcc
/home/danrothaudiodsp/kaldi-trunk/egs/voxforge/s5/voxforge/extracted/1028-20100710-hne/wav/ar-02.wav /home/danrothaudiodsp/gfcc_train/ar-02.gfcc

這個表達,

((\/[^\/]+\/[^\/]+\/[^\/]+).+\/(.+)\.wav)

可能有助於調查並將其翻譯為awk

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM