Linux 如何用评估结果替换部分文本
我想用Linux 如何用评估结果替换部分文本,linux,bash,Linux,Bash,我想用date--date=“some str”+%s的结果替换字符串中出现的每个@(some str)。其中'some str'可以是按原样传递给--date参数的任何内容。请注意,我希望支持多个@()实例 例如,字符串从@(-1周)到@(-1天)应该从1435830929到1436349343变为。如果我在一周内对它进行评估,它应该是从1436435800到1436954213的,,你期待这样的结果吗 #!/bin/bash str="@2147483647 some other stri
date--date=“some str”+%s
的结果替换字符串中出现的每个@(some str)
。其中'some str'可以是按原样传递给--date参数的任何内容。请注意,我希望支持多个@()
实例
例如,字符串
从@(-1周)到@(-1天)
应该从1435830929到1436349343变为。如果我在一周内对它进行评估,它应该是从1436435800到1436954213的,
,你期待这样的结果吗
#!/bin/bash
str="@2147483647 some other string @2147483647"
from="@2147483647"
to="$(date --date @2147483647)"
echo ${str//$from/$to}
看
基本上:
sed -r 's|@\(([^)]*)\)|$(date +%s --date "now\1")|g; s|.*|echo "&"|e' <<< input_string
sed-r的|@\([^)]*)\ |$(date+%s——date“now\1”)| g;如果我想用其他东西替换常量字符串,我就不需要编写脚本。我只需要计算其他值,然后写一个新的常量字符串