Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在unix中复制到其他目录时复制动态文件名并附加一些字符串_Unix_Sed_Awk - Fatal编程技术网

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

如何在unix中复制到其他目录时复制动态文件名并附加一些字符串,unix,sed,awk,Unix,Sed,Awk,我有很多文件,比如ABC\u Timestamp.txt,RAM\u Timestamp.txt这里的时间戳每次都会不同。我想将此文件复制到其他目录中,但在复制时,我想在文件末尾附加一个字符串,因此格式将为ABC\u Timestamp.txt.OK和RAM\u Timestamp.txt.OK。如何在动态文件中追加字符串。请建议 我的2便士: (cat file.txt; echo "append a line"; date +"perhaps with a timestamp: %T") &

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

我的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
你可以说:

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


在命令行上执行此命令

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

摘自

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

  find . -name "*.txt" >fileNames


  while read line
  do
  newName="${line}appendText"
  echo $newName
  cp $line $newName
  done < fileNames
find-名称“*.txt”>文件名
读行时
做
newName=“${line}appendText”
echo$newName
cp$line$newName
完成<文件名

这不会在字符串末尾追加一个字符串file@sehe问题似乎不是关于修改文件,而是关于修改文件名。我没有说是关于修改文件(显然是关于复制文件)。但是,就算你知道一些事情。我们将让OP澄清(即使问题一点也不含糊)“我想在文件末尾附加一个字符串”-人们感到困惑。“文件末尾”与“文件名末尾”完全不同。请澄清:我很抱歉造成这种混乱。复制文件时,我想将字符串附加到文件名的末尾。您能推荐一种线性解决方案吗?我不知道文件名上的时间戳?文件名的静态部分是ABC和RAM。@Pooja25是关于修改文件名而不是文件内容的吗?@Pooja25请先澄清问题。然后看看答案是如何运作的。一旦你知道它是如何表达的,你可以继续把它浓缩成一行。除非你知道自己首先在做什么,否则OneLiner是没有价值的。这一定是我以前不知道的“简单”这个词的一个奇怪用法,它与移动无关。如果是这样的话,那么
rename's/$/.OK/
*.txt`和或
qmv
将是我编辑到cp的更好选择。关键是添加一些内容并移动/复制或任何您想要的内容。
  find . -name "*.txt" >fileNames


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