ファイルがありますが、Config.cfg
ファイル名に2行目の値を入れて名前を変更したいと思います。
例:
$ 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を使用して2行目を抽出します。
- 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)"