我一直在努力学习更多关于 Linux 的知识,并且今天上午一直在专注于 awk 命令。我一直试图开始工作的命令如下。
ls -lRt lpftp.* | awk '{print $7, $9}' | mkdir -p $(awk '{print $1}') | ls -lRt lpftp.* | cp $(awk '{print $9, $7}')
本质上,我试图根据该文件的最后修改日期将目录中的每个文件移动到子目录中。该命令首先只打印我想要的文件,然后使用 mkdir 根据上次修改的日期创建一个文件夹。之后我想做的是将每个文件移动到其关联的目录中,但是现在的命令是将每个文件移动到 01 文件夹中并打印出以下文本
cp: 0653-436 12 is a directory.
Specify -r or -R to copy.
每个目录一次。
有谁知道我该如何解决这个问题?或者是否有更好的方法?
最佳答案
ls -lRt lpftp.* | awk '{print $7, $9}' |在阅读日文件时;执行 mkdir -p "$day"; cp "$file""$day";完成
do
和 done
之间的命令将针对每一行输出执行,第一件事是 awk
在 中打印day
变量和 file
中的第二个(每行)。我在这里使用引号有些不必要,因为在给定变量设置方法的情况下,变量中不会有空格。
关于Linux CP 使用 AWK 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595908/