内容の2行目でファイル名を変更します。

内容の2行目でファイル名を変更します。

ファイルがありますが、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)"

関連情報