首页 > 解决方案 > 将数据从 STDIN 插入到字符串的特定位置

问题描述

案例:我想将文件中的一些数据插入到字符串的特定位置。

示例

cat users.log | mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE ${USERS_IDS}'

我想将 ${USERS_IDS} 字符串替换为文件中的数据
我确定这种情况很流行,但我没有找到合适的解决方案

标签: linuxunix

解决方案


要将文件的内容插入字符串的特定位置,您可以使用 shell 的功能。

例如,Bash 具有$(<文件名)构造

mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE '"$(< users.log)"

如果要插入的数据需要稍作编辑,您可以使用以下$(命令)构造:

mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE '"$(< users.log sed -e 's/.../.../')"

文件替换或命令替换是否用双引号括起来取决于具体的用例。

而且,如果预期用途真的是在 MySQL 命令中提供值,请注意Bobby Tables


推荐阅读