加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 01:25:07 所属栏目:安全 来源:网络整理
导读:我有一个文件包含: ?php return 0; 我想用bash替换,值为0的当前时间戳. 我知道我可以得到当前的时间戳: date +%s 我可以用sed替换字符串: sed 's/old/new/g' input.txt output.txt 但是如何结合这两个来实现我想要的呢?不涉及sed和date的解决方案也是受
我有一个文件包含:
<?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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读