[問題] 關於路徑 我又來求解了

作者: 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