作者 主題: 請教shell script sed 的問題  (閱讀 6131 次)

0 會員 與 1 訪客 正在閱讀本文。

seye586

  • 懷疑的國中生
  • **
  • 文章數: 35
    • 檢視個人資料
請教shell script sed 的問題
« 於: 2010-03-08 20:27 »
大家好...

我想寫一個script ./copy_to_new  dir1  dir2



for name in $1/*.ko; do
    file=`echo $name|sed -e "s/\$1//"`
    cp -a  $2/$file $1/
done

將dir2 中 與dir1 中相同的ko檔 copy 到dir1
就是一直卡在sed
也有試過 echo $name|sed -e 's/"$1"//'
還是不行
應該是要可以用變數阿...

請指教
謝謝







dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
回覆: 請教shell script sed 的問題
« 回覆 #1 於: 2010-03-08 20:50 »
好像    file=`echo $name|sed -e "s/$1//"`
不需跳脫吧 ... (小弟沒測試喔)


... 不過先 cd dir1 不就好了 ?

gwstudy

  • 活潑的大學生
  • ***
  • 文章數: 205
    • 檢視個人資料
回覆: 請教shell script sed 的問題
« 回覆 #2 於: 2010-03-09 10:04 »
    file=`echo $name|sed -e "s/\$1//"`

你要的這動作,有 basename 指令可用

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 101
    • 檢視個人資料
回覆: 請教shell script sed 的問題
« 回覆 #3 於: 2010-03-09 10:23 »
請試試看..

file=`echo $name|sed -e "s|$1/||"`
« 上次編輯: 2010-03-09 10:27 由 hongbin »

thyme

  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 1281
    • 檢視個人資料
回覆: 請教shell script sed 的問題
« 回覆 #4 於: 2010-03-09 12:56 »
大家好...

我想寫一個script ./copy_to_new  dir1  dir2

for name in $1/*.ko; do
    file=`echo $name|sed -e "s/\$1//"`
    cp -a  $2/$file $1/
done

將dir2 中 與dir1 中相同的ko檔 copy 到dir1
就是一直卡在sed
也有試過 echo $name|sed -e 's/"$1"//'
還是不行
應該是要可以用變數阿...

請指教
謝謝
代碼: [選擇]
#!/bin/bash
for name in $1/*.ko; do
    name2="$2/${name##*/}"
    if [ -f "$name2" ]; then
        cp -f "$name2" "$name"
    fi
done

seye586

  • 懷疑的國中生
  • **
  • 文章數: 35
    • 檢視個人資料
回覆: 請教shell script sed 的問題
« 回覆 #5 於: 2010-03-09 13:00 »
多謝gwstudy 和 hongbin
兩種方式的可以...
謝啦