分页: 1 / 1

read line得到的$line有换行符?

发表于 : 2009-12-13 21:55
moonchild
read line得到的$line 是不是有个换行符啊

我想做的事情是这样的

有个list.txt是这样2行:
123
456
  
然后我目录里有文件如下
a-123.c
b-456.c
c-789.c

我想把前2个和txt文件里匹配的c文件复制到其他地方

尝试如下

代码: 全选

#!/bin/bash
while read line
do
   find . -name "*"${line}"*" | xargs -i cp {} somewhere
done <list.txt
但是不好使
我用的cygwin,有时好像还因为文件自身换行符产生不同的结果,就直接把所有文件都复制了
是不是因为read line得到的$line有换行符?
如果是的话,怎么能把它去掉呢
先谢谢了

Re: read line得到的$line有换行符?

发表于 : 2009-12-13 22:46
xzap
我这里测试完全好用,一点错误都没出,帮不了你了。
而且这样读出来的数据,应该是不含换行符的

Re: read line得到的$line有换行符?

发表于 : 2009-12-13 22:47
eexpress
man find
找 -exec 可以带一堆。
你方法不正确

Re: read line得到的$line有换行符?

发表于 : 2009-12-13 23:03
xzap
这个方法也是正确的啦,
ee讲话老说一半

代码: 全选

find . -name "*"${line}"*" -exec cp {} somewhere \;
或者需要确认的话

代码: 全选

find . -name "*"${line}"*" -ok cp {} somewhere \;

Re: read line得到的$line有换行符?

发表于 : 2009-12-14 19:45
moonchild
好,谢谢你们的回答
:)