shell中向sed命令傳遞變量

來源:本站原創 IT必備工具 超過708 views圍觀 0條評論

使用shell中的sed命令時,發現不能把shell定義的變量傳遞進去,

shell命令如下:

sed -n ’${fileLength[$j]},$newline p‘ ${fileName[$j]} >> all.log

發現只需要將sed -n ‘${fileLength[$j]},$newline p’ ${fileName[$j]} >> all.log

中的單引號,改成雙引號就可以了

sed -n "${fileLength[$j]},$newline p" ${fileName[$j]} >> all.log

 

https://blog.csdn.net/mdming412/article/details/52198341

 

shell 傳參sed

在shell 傳參給sed 時,會失效,原因是單引號” ,它會阻止轉義 。

方法1: 把單引號改為 雙引號 “” ,就OK 了。

舉個栗子:

#!/bin/sh

sessionID=$1
echo "Usage: pplog.sh $sessionID "

#Test1 :correct sample
sed -n "/${sessionID}-START/,/${sessionID}-END/p" t.t

#Test2: failure sample
sed -n "/${sessionID}-START/,/${sessionID}-END/p" t.t
$ sh -x ./pplog.sh S0009
+ sessionID=S0009
+ echo 'Usage: pplog.sh S0009 '
Usage: pplog.sh S0009
+ sed -n /S0009-START/,/S0009-END/p t.t
#S0009-START
+ sed -n '/${sessionID}-START/,/${sessionID}-END/p' t.t

方法2: 變量${} 外的字符串全都用單引號”圈住

$sed -n '/'${sessionID}'-START/,/'${sessionID}'-END/p' t.t
文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=3941轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏 打麻将十三幺怎么胡 篮球竞彩投注技巧 飞艇冠军二期六码计划 黑龙江22选5开奖查询结果 江苏快三玩法介绍 赚钱其实不难txt在线下载 腾讯分分彩一期计划 官方认证的彩票网站 易网重庆老时时彩开奖 东升彩票网址 体彩排列五5走势图怎么看 排列五开奖结果app 天天2棋牌下载手机版 微信有赚钱的软件下载 4887王中王鉄算盘开奖结果有 028彩票app