【发布时间】:2016-11-09 19:52:52
【问题描述】:
我正在尝试替换文本文件中几个不同字符串中的数字。基本上它会采用
的形式tableNameNUMBER
carNUMBER
我对 bash 和脚本很陌生,我不知道如何用我传入的内容替换 NUMBER。所以我尝试了这个:
#! /usr/bin/env bash
sed "s/NUMBER/$1/" myScript.txt > test.txt
然后在命令行:
sh test.sh 123456
这仅适用于 NUMBER 单独存在且前面没有 tableName 或 car 的情况。在这些情况下,我该如何替换 NUMBER。有${NUMBER} 会更好吗?对不起,如果这些完全是菜鸟问题。
【问题讨论】:
-
应该可以。也许您只需要添加 g 标志:
sed "s/NUMBER/$1/g" -
离题:为什么你在
sh脚本中有一个bashshebang 行,你还使用sh test.sh显式运行它? -
另外,NUMBER 是一个实际的字符串,还是一个实际的数字?
-
试试:
#1 /usr/bin/env bashsed "s/(tableName\|car)NUMBER/\1$1/g" myScript.txt > test.txt
标签: bash