【发布时间】:2014-02-16 14:27:32
【问题描述】:
我在一个变量 ($AUD_DATE) 中有搜索字符串,并在另一个变量 ($YEST_DATE) 中替换字符串。我需要使用 $AUD_DATE 在文件夹中搜索文件名,然后将其替换为 $YEST_DATE。
我尝试使用此链接来执行此操作,但它不适用于变量。 Find and replace filename recursively in a directory
shrivn1 $ AUD_DATE=140101
shrivn1 $ YEST_DATE=140124
shrivn1 $ ls *$AUD_DATE*
NULRL.PREM.DATA.CLRSFIFG.140101.dat NULRL.PREM.DATA.CLRTVEH.140101.dat
shrivn1 $ ls *$AUD_DATE*.dat | awk '{a=$1; gsub("$AUD_DATE","$YEST_DATE");printf "mv \"%s\" \"%s\"\n", a, $1}'
mv "NULRL.PREM.DATA.CLRSFIFG.140101.dat" "NULRL.PREM.DATA.CLRSFIFG.140101.dat"
mv "NULRL.PREM.DATA.CLRTVEH.140101.dat" "NULRL.PREM.DATA.CLRTVEH.140101.dat"
我需要的实际输出是
mv "NULRL.PREM.DATA.CLRSFIFG.140101.dat" "NULRL.PREM.DATA.CLRSFIFG.140124.dat"
mv "NULRL.PREM.DATA.CLRTVEH.140101.dat" "NULRL.PREM.DATA.CLRTVEH.140124.dat"
提前致谢
【问题讨论】:
-
您链接的答案似乎有很多有用的例子。
-
你的“实际输出”看起来不对。
-
@glennjackman : 更新了实际输出。