如果实际文件不可用,如何重命名虚拟文件

时间:2017-02-20 11:38:20

标签: bash unix awk putty

在目录中存在4个虚拟文件。

  1. acc_bal.1.txt
  2. acc_dir.1.txt
  3. acc_liq.1.txt
  4. acc_trans.1.txt
  5. 使用其他一些进程我在同一目录中获取一些文件。

    例如:
    在这个目录下面的文件来了 -
           acc_bal_1_20022017_1.txt
         acc_dir_1_20022017_1.txt
    。 #[* 20022017-当前日期ddmmyyyy]

    由于缺少 acc_liq_1_20022017_1.txt acc_trans_1_20022017.txt 文件, 但我们需要根据要求提供所有4个文件。

    因此,请考虑虚拟文件 acc_liq.1.txt acc_trans.1.txt 并将其重命名为

    acc_liq_1_20022017_1.txt
     acc_trans_1_20022017_1.txt

    我需要在putty中编写unix脚本以适应上述情况。

    我从下面的脚本开始 for mypattern in ls -1 DIR | cut -d'_' -f3-4 | uniq | awk -F'/' '{print $NF}'

    但是我没有任何想法继续进行,因为我是unix的初学者。 请提供正确的解决方案。

1 个答案:

答案 0 :(得分:0)

我觉得某处可能还有其他一些问题,但以下内容应该让你开始:

d=$(date +"_1_%d%m%Y_")

for f in *.1.txt
do
    nf=${f/./$d}

    [[ -f "$nf" ]] || mv "$f" "$nf"
done

这最初假设您位于虚拟文件的目录中,而所有其他正确的文件都不会以' .1.txt'

结尾