求脚本:根據文件名前綴歸入不同的目錄

sh/bash/dash/ksh/zsh等Shell脚本
回复
mad_frog
帖子: 55
注册时间: 2011-06-29 11:26

求脚本:根據文件名前綴歸入不同的目錄

#1

帖子 mad_frog » 2012-06-26 10:48

各位;
想实现以下目的
目录A下有aaa bbb ccc ddd eee fff ggg 7个目录
目录B下有一些名字内带有output的文件,比如aaa_output.txt aaa_output.txt.bak bbb_output.txt ccc_output.txt ......
想实现将aaa_output.txt 同步到 aaa目录下 bbb_output.txt 同步到bbb目录下等等.......
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求脚本@_@

#2

帖子 lilydjwg » 2012-06-26 12:08

假设 A, B 是绝对路径,
[bash]
cd A
for i in *; do
cp B/${i}_output.* $i
done
[/bash]
上次由 lilydjwg 在 2012-06-26 13:22,总共编辑 1 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 求脚本@_@

#3

帖子 枫叶饭团 » 2012-06-26 12:53

仙子啊,直接写$i_output这样子恐怕不行吧${i}_output
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求脚本@_@

#4

帖子 lilydjwg » 2012-06-26 13:21

枫叶饭团 写了:仙子啊,直接写$i_output这样子恐怕不行吧${i}_output
呃,忘记了 = =
要是我的话可能会用 vim 生成一堆命令了 :-P
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求脚本@_@

#5

帖子 cao627 » 2012-06-26 14:14

lilydjwg 写了:假设 A, B 是绝对路径,
[bash]
cd A
for i in *; do
cp B/${i}_output.* $i
done
[/bash]
学习!
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 求脚本@_@

#6

帖子 aerofox » 2012-06-26 17:40

另一个办法就是
[bash]cd B
for f in *_output.txt; do
mv $f A/${f%_*}/ # 没有最后的 / 也可以,但是如果不存在 A/aaa 这个目录,则把 B/aaa_output 拷贝成 A/aaa 文件。
done[/bash]
回复