bash – 如何用文本文件中的命令输出替换值?

前端之家收集整理的这篇文章主要介绍了bash – 如何用文本文件中的命令输出替换值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个文件包含:
<?PHP return 0;

我想用bash替换,值为0的当前时间戳.

我知道我可以得到当前的时间戳:

date +%s

我可以用sed替换字符串:

sed 's/old/new/g' input.txt > output.txt

但是如何结合这两个来实现我想要的呢?不涉及sed和date的解决方案也是受欢迎的,只要他们只使用shell工具.

一般来说,请使用这种语法:
sed "s/<expression>/$(command)/" file

这将查找< expression>并用命令的输出替换它.

对于您的具体问题,您可以使用以下内容

sed "s/0/$(date +%s)/g" input.txt > output.txt

这将使用命令日期%s的输出替换文件中存在的任何0.请注意,您需要使用双引号来解释$()中的命令.否则,你会得到一个字面值$(日期%s).

如果要自动更新文件,请将-i添加到sed命令中:sed -i“s / ….这称为就地编辑.

测试

给出一个包含此内容文件

<?PHP return 0;

让我们看看它返回的是什么:

$sed "s/0/$(date +%s)/g" file
<?PHP return 1372175125;

猜你在找的Bash相关文章