将文件从一个目录移动到另一个目录



我想在UNIX中将文件从一个目录移动到另一个目录。

我在字符串中有文件名,如" file 1.txt, file 2.txt">

所以我想从字符串中提取这些文件名,然后将它们存档到另一个文件夹。

我尝试过这样的东西,但无法实现整个解决方案-

echo "Open Incidents 08-02-2021.csv,Closed Incidents 08-02-2021.csv"  | tr "," "n" | sed -e 's/^/"/g' -e 's/$/"/g' | tr "n" " " | sed 's/ $//'

输出- "Open events 08-02-2021.csv"关闭事件08-02-2021.csv">

使用这种语法,正如您可以看到的输出,我可以在文件名周围加上引号,因为文件名中有空格,名称之间也有空格,但是不确定如何将这些传递给mv命令,以便将文件移动到另一个文件夹。

我知道我们可以在For循环中做到这一点,但我希望有一个没有这个的解决方案。

如果有任何帮助,我将不胜感激。

使用awk和while循环尝试以下操作:

while read line;
do 
echo "mv $line /path/to/newdir";
# mv "$line" "/path/to/newdir";
done <<< "$(awk 'BEGIN { RS="," } { print $0 }' <<< "Open Incidents 08-02-2021.csv,Closed Incidents 08-02-2021.csv")" # Use awk to set the record separator to "," and print each record on a separate line

在删除注释标记并执行

之前验证move命令的回显

我认为xargs可以解决你的问题:

echo "Open Incidents 08-02-2021.csv,Closed Incidents 08-02-2021.csv"|tr "," "n"|sed -e 's/^/"/g' -e 's/$/"/g' | tr "n" " " | sed 's/ $//'|xargs -I mv {} <other_dir>/

{}将保留前一个命令的输出,并将其传递给mv命令。

相关内容

  • 没有找到相关文章

最新更新