【问题标题】:How to use 2 sed commands in a single file as a input value?如何在单个文件中使用 2 个 sed 命令作为输入值?
【发布时间】:2016-08-07 05:30:04
【问题描述】:

我在一个 sh 文件中有 2 个 sed 命令,可以像这样为其他 sh 文件输入值

sed -i '23 i\if [ $REPLY == '0,5120,10240,20480,40960,65536' ]; then' /system/0211/0211tr.sh
sed -i '27 i\elif [ $REPLY == '6144,12288,18432,32768,49152,57344' ]; then' /system/0211/0211tr.sh  

第一个 sed 正在工作,但另一个没有。第一个sed,在第23行插入一个值,第二个sed在第27行插入一个值。还有另一种方法可以做到这一点吗?我在 Android 设备上运行它

【问题讨论】:

  • 它以什么方式“不起作用”?第一个脚本是否会增加后续行号,因此第二个脚本不会插入您认为会插入的位置?

标签: android shell sed


【解决方案1】:

对于 sed 命令,您可以将单引号 ' 的引号更改为双引号 ",因为您在插入的文本中也有单引号 '

此外,一旦您更改引号,您需要使用 \ 转义 $\ 等字符。

而且,您可以将这两个插入到一个 sed 命令中。

sed -i -e "23 i\\if [ \$REPLY == '0,5120,10240,20480,40960,65536' ]; then"  \
       -e "27 i\\elif [ \$REPLY == '6144,12288,18432,32768,49152,57344' ]; then" \
        /system/0211/0211tr.sh

【讨论】:

  • 切勿将任何脚本括在双引号中。如上所述,这不是必需的,只会增加复杂性。
猜你喜欢
  • 2012-06-05
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 2018-01-11
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多