linux的sed命令詳解
如果空格與tab共存時用
sed -e 's/[[:space:]][[:space:]]*/ /g' filename
替換文件名中的空格
newfile=${oldfile// /_}
用 tr :
find . -type f -name "* *" -print |
while read name; do
na=$(echo $name | tr ' ' '_')
if [[ $name != $na ]]; then
mv "$name" $na
fi
done
修改 IFS
#!/bin/sh
[email protected] read name address
echo "A mail to $name at $address"
read subject
echo "Subject: $subject"
or
#!/bin/sh
IFS=:
for p in $PATH
do
if [ -x $p/$1 ]
then
echo $p/$1
return
fi
done
echo "No $1 in your path" 1 > &2
return 1
or
( IFS=: ; for D in $PATH; do for F in $D/*gif*; do [ -x $F ] && echo $F; done; done )
今天做了一個Shell程式,結果傳遞過來的檔名有些有空格,導致不能執行,找不到原檔案,急於解決先把檔名的空格都用下劃線都給替換掉,其實應該可以從程式上解決的,繼續看有什麼方法
以下是在網上找的替換空格檔案的指令碼
用 tr :
find . -type f -name "* *" -print |
while read name; do
na=$(echo $name | tr ' ' '_')
if [[ $name != $na ]]; then
mv "$name" $na
fi
done