關於路徑 我又來求解了 - Linux

Table of Contents

大家好,這次我真的想破頭,一點頭序都沒有

我有一堆資料在/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 (確認檔案是否存在)

檔案內容存在

--
才疏學淺,完全不知道為什麼Orz
請指點下小弟,謝謝

Dan




--

不過是人

http://www.facebook.com/twaiting

--

All Comments

Todd Johnson avatarTodd Johnson2015-07-12
xargs --verbose 可以看到要執行的 command
Carol avatarCarol2015-07-14
可能是sed 的參數有問題, 試試用雙引號包起來?
Rae avatarRae2015-07-18
-i: This option is deprecated; use -I instead.
Jessica avatarJessica2015-07-21
try this: xargs -I{} -t -n 1 echo {}
Ursula avatarUrsula2015-07-23
試試用vi看一看list檔,把裏面的怪字元除掉,太多列用regex
Hedy avatarHedy2015-07-25
如果vi也看不出來,用od來看
反正先找出有什麼字元是路徑以外的,格式如何再來想辦法
Ina avatarIna2015-07-29
先直接用bash執行 while read p; do sed s///g $p <換行>
done<new-list
看看有沒有成功?
Elizabeth avatarElizabeth2015-08-02
linux至少還有這些指令可以玩一輩子,在早先的windows,這
Hardy avatarHardy2015-08-05
種批次動不寫程式來做要下輩子 XD
^作
Elma avatarElma2015-08-05
上傳你的list.txt給大家看一下啊
Ingrid avatarIngrid2015-08-08
為什麼你要xargs -i ? 你的-i是要給sed的吧?
Zanna avatarZanna2015-08-12
試試 dos2unix 指令, 之前在 windows 處理過有問題的檔案
William avatarWilliam2015-08-12
之前在 windows 處理過正常, linux有問題的檔案, 都這樣解