如何循环并选择文件中的每个字符串并从文件夹中搜索相同的字符串

时间:2016-04-19 09:45:32

标签: shell unix scripting

我有一个名为error的文件夹,其中包含大约1000个文件,如下所示:

-rw-r--r--   1 orartkp6 dba         1298 Apr 19 09:23 BEN_INV_5_0900091010993_20160419092353.xml.err
-rw-r--r--   1 orartkp6 dba         1289 Apr 19 09:23 BEN_INV_5_0900091010994_20160419092353.xml.err
-rw-r--r--   1 orartkp6 dba         1286 Apr 19 09:23 BEN_INV_5_0900091010995_20160419092353.xml.err
-rw-r--r--   1 orartkp6 dba         1292 Apr 19 09:23 BEN_INV_5_0900091010996_20160419092353.xml.err
-rw-r--r--   1 orartkp6 dba         1300 Apr 19 09:23 BEN_INV_5_0900091010997_20160419092353.xml.err

现在我有一个.txt文件,上面只有500个以上文件名称。 所以现在我必须编写一个脚本来读取.txt文件中的每一行,并在错误文件夹中搜索并将这500个文件移动到一个新文件夹(backup_folder)。

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

这背后的逻辑是, 只读$ 2列(我想)文件的名称, 并在while循环中输出变量中的每一个,然后使用mv。

awk '{print $2; var=$2; mv $var dir_to_move}' 500lines.txt
希望我帮忙。

答案 1 :(得分:0)

我使用下面的while循环来解决这个问题。

同时读取文件 做 cp -p" $ file" ./backup_folder 完成< 500lines.txt