楼主:
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:00xargs --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有问题的档案, 都这样解