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

sh/bash/dash/ksh/zsh等Shell脚本
回复
moonchild
帖子: 116
注册时间: 2005-12-25 20:44

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

#1

帖子 moonchild » 2009-12-13 21:55

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有换行符?
如果是的话,怎么能把它去掉呢
先谢谢了
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

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

#2

帖子 xzap » 2009-12-13 22:46

我这里测试完全好用,一点错误都没出,帮不了你了。
而且这样读出来的数据,应该是不含换行符的
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#3

帖子 eexpress » 2009-12-13 22:47

man find
找 -exec 可以带一堆。
你方法不正确
● 鸣学
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

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

#4

帖子 xzap » 2009-12-13 23:03

这个方法也是正确的啦,
ee讲话老说一半

代码: 全选

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

代码: 全选

find . -name "*"${line}"*" -ok cp {} somewhere \;
moonchild
帖子: 116
注册时间: 2005-12-25 20:44

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

#5

帖子 moonchild » 2009-12-14 19:45

好,谢谢你们的回答
:)
回复