[问题] 关于路径 我又来求解了

楼主: cherubx (DanzYam)   2015-07-10 12:42:25
大家好,这次我真的想破头,一点头序都没有
我有一堆资料在/home/me/doc/a/
我一个需修改资料清单档在 /home/me/doc/list
我想一次修改过档案内容,以下是我做的顺序
$cat list (确认下清单内容)
/home/me/doc/a/123.txt
/home/me/doc/a/223.txt
/home/me/doc/a/323.txt
/home/me/doc/a/423.txt
/home/me/doc/a/523.txt
$ cat list |xargs -i sed 's///g' {} (把清单的路径做为sed的filename)
No such file or directoryx/home/me/doc/a/123.txt
No such file or directoryx/home/me/doc/a/223.txt
No such file or directoryx/home/me/doc/a/323.txt
No such file or directoryx/home/me/doc/a/423.txt
No such file or directoryx/home/me/doc/a/523.txt
$ cat /home/me/doc/a/123.txt (确认档案是否存在)
档案内容存在
作者: bibo9901 (function(){})()   2015-07-10 12:52:00
xargs --verbose 可以看到要执行的 command可能是sed 的参数有问题, 试试用双引号包起来?
作者: qsort (Cos)   2015-07-10 13:25:00
-i: This option is deprecated; use -I instead.try this: xargs -I{} -t -n 1 echo {}
作者: bitlife (BIT一生)   2015-07-10 13:53:00
试试用vi看一看list档,把里面的怪字符除掉,太多列用regex如果vi也看不出来,用od来看反正先找出有什么字符是路径以外的,格式如何再来想办法先直接用bash执行 while read p; do sed s///g $p <换行>done<new-list看看有没有成功?linux至少还有这些指令可以玩一辈子,在早先的windows,这种批次动不写程式来做要下辈子 XD^作
作者: kdjf (我抓得到什么呢?)   2015-07-10 19:25:00
上传你的list.txt给大家看一下啊为什么你要xargs -i ? 你的-i是要给sed的吧?
作者: lj0113 (tiny legend)   2015-07-10 22:15:00
试试 dos2unix 指令, 之前在 windows 处理过有问题的档案之前在 windows 处理过正常, linux有问题的档案, 都这样解

Links booklink

Contact Us: admin [ a t ] ucptt.com