我一直在努力学习更多关于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”; DONE

do和done之间的命令将针对每行输出执行,第一件事是awk打印在day变量中,第二件打印在文件中(每行).我在这里使用引号有点不必要,因为变量中没有空格给定它们的设置方法.

标签: bash, linux, awk, cp

相关文章推荐

添加新评论,含*的栏目为必填