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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |