如何复制动态文件名并在复制到unix中的其他目录时附加一些字符串

时间:2013-09-10 06:55:45

标签: unix sed awk

我有很多文件,例如ABC_Timestamp.txtRAM_Timestamp.txt这里的时间戳每次都会有所不同。我想将此文件复制到其他目录中,但在复制时我想在文件末尾添加一个字符串,因此格式为ABC_Timestamp.txt.OKRAM_Timestamp.txt.OK。如何在动态文件中附加字符串。请建议。

4 个答案:

答案 0 :(得分:1)

我的2便士:

(cat file.txt; echo "append a line"; date +"perhaps with a timestamp: %T") > file.txt.OK

或者更完整的文件名:

 while sleep 3;
 do
    for a in ABC RAM
    do
        (echo "appending one string at the end of the file" | cat ${a}_Timestamp.txt -) > ${a}_Timestamp.txt.OK
    done
 done

答案 1 :(得分:1)

在命令行上执行此操作。

ls -1|awk '/ABC_.*\.txt/||/RAM_.*\.txt/
          {old=$0;
           new="/new_dir/"old".OK";
           system("cp "old" "new); }'

取自here

答案 2 :(得分:0)

你可以说:

for i in *.txt; do cp "${i}" targetdirectory/"${i}".OK ; done

for i in ABC_*.txt RAM_*.txt; do cp "${i}" targetdirectory/"${i}".OK ; done

答案 3 :(得分:-1)

如何先将文件名转储到另一个文件中,然后逐个移动文件。

  find . -name "*.txt" >fileNames


  while read line
  do
  newName="${line}appendText"
  echo $newName
  cp $line $newName
  done < fileNames