我有一个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
答案1
单程:
- 使用 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"
答案2
仅当sed
您提取文件名时:
mv file "$(sed -n '/Configuration/s/.*at [^ ]*/Config/p' file)"