想象我有一個像下面防止回聲
a/b/c_d.e
a/b/d.f
我想裂傷的文件名,這樣的路徑分隔符成爲_
文件夾/文件結構和文件夾之間文件是一個-
,然後這是前綴到文件夾位置。
a/b/a_b-c_d.e
a/b/a_b-d.f
我到目前爲止有:
find . -type f -name *.c -exec sh -c "echo -n { {} | xargs dirname }; echo -n "/"; realpath --relative-to="$PWD" "{}" | tr '/' '_'" \;
將輸出
./src/ucd-tools/src /src_ucd-tools_src_proplist.c
看來第一echo -n
是添加新的林es,但如果我手動運行echo -n "Hello"
它按預期工作,沒有新行。
您正在運行'sh',不'bash'和'-n'只是另一個字符串與POSIX'回聲打印',而不是一面旗幟。改用'printf'/''。 – chepner