Rename
通過它的第 2 行內容更改文件名
我有一個
Config.cfg
文件,我想通過將第二行的值放在文件名中來重命名它。例子:
$ more Config.cfg ! ! Configuration last changed by user '%LICM%' at Tue Jul 4 15:17:04 2017 ! ! ! global synchronization option 2
預期結果 :
Config Jul 4 15:17:04 2017.cfg
單程:
- 使用 sed,提取第二行
- 使用 awk,提取尾隨欄位並列印周圍的靜態文本
- 如果成功,則使用生成的值重命名文件
程式碼:
val=$(sed -n 2p Config.cfg | awk '{print "Config " $(NF-3) " " $(NF-2) " " $(NF-1) " " $NF ".cfg"}') [[ -n "$val" ]] && mv Config.cfg "$val"
只有
sed
您提取文件名:mv file "$(sed -n '/Configuration/s/.*at [^ ]*/Config/p' file)"