【发布时间】:2012-12-18 07:13:12
【问题描述】:
我有一个 .txt 文件中的模式列表。 [列表.txt]。对于list.txt中的每一行,我想在list.txt中以指定模式开头的位置查找所有文件,然后将这些文件移动到另一个位置。 考虑一个例子。
~/home/ana/folder_a 我有list.txt,看起来像这样...
list.txt
1abc
2def
3xyz
在这个位置,即/home/ana/folder_a/,有多个以 list.txt 中的模式开头的文件。因此,有 1abc_a.txt、1abc_c.txt、1abc_f.txt、2def_g.txt、3xyz_a.txt 等文件
所以我想要实现的是:
for i in cat list.txt; do
ls | grep '^$i' [thats the pattern] |
mv [files containing the pattern] to /home/ana/folder_b/
请注意,在其他位置,即 /home/ana/folder_b/ 我已经创建了针对每种模式的目录。
所以 /home/ana/folder_b/ 包含子目录,如 1abc/ 、 2def/ 、 3xyz/ 实际上,我希望将匹配模式 '1abc'、'2def' 和 '3xyz' 的所有文件从 /home/ana/folder_a/ 移动到 /home/ana/folder_b/ 中它们各自的子目录中,这样 /home /ana/folder_b/1abc 将有 1abc_a.txt 、 1abc_c.txt 和 1abc_f.txt ; /home/ana/folder_b/2def/ 将有 2def_g.txt 和 /home/ana/folder_b/3xyz/ 将有 3xyz_a.txt
【问题讨论】:
标签: linux bash shell grep move