我有一個文件,其中有一些行寫在臨時目錄中。我的目標是提取第二個下劃線和點(。)之間的值。例如,在bash中第二次出現_(下劃線)和點(。)之前提取值
這裏的filesample.txt
內容的示例:
--rwxr-x--- 235 2016-08-24 05:13 File_Name_2696553.txt
--rwxr-x--- 1274 2016-09-14 04:44 File_Name_2852659.xls
--rwxr-x--- 1802 2016-09-14 05:04 File_Name_2852992.pdf
我所做的是以下幾點:
cat ${tmp}filesample.txt | cut -b64- | awk -F"." '{ print $1 }'
這給了我所需的輸出。但是,我認爲更好的解決方案是將代碼放在第二個下劃線和點之間。
這樣,如果每行的內容末尾的7位數字變爲8或更多,我不必回到我的腳本並調整它,因爲cut -b64-
正在查看第64位的字節。
這可能是一個基本的問題,我是bash腳本的新手。
使用此解決方案:'awk'{split($ NF,a,「[_。]」);打印一個[3]}'<<<'a.b.c.d_123_xyz.jpg''將返回'c',但我相信OP正在尋找'xyz' – anubhava