linux - 将数据从 STDIN 插入到字符串的特定位置
问题描述
案例:我想将文件中的一些数据插入到字符串的特定位置。
示例:
cat users.log | mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE ${USERS_IDS}'
我想将 ${USERS_IDS} 字符串替换为文件中的数据
我确定这种情况很流行,但我没有找到合适的解决方案
解决方案
要将文件的内容插入字符串的特定位置,您可以使用 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。
推荐阅读
- ios - 具有针对同一事件的多个目标操作的 UIButton
- jmeter - Jmeter使用多个线程上传文件
- c++ - 有没有办法让函数返回一个函数?
- java - HttpResponse 响应字符串有额外的 `"` 并且无法识别 `\n`
- node.js - npm install 失败,出现“权限被拒绝”和“超出最大调用堆栈大小”错误
- django - Django 不与主管合作,在非套接字上获取 [Errno 88] 套接字操作
- virtual-machine - VirtualBox 安装失败 - Mac 10.14.5
- python - 在交互栏 + 热图中选择大型数据集时冻结
- sql-server - 根据参数按 ASC 或 DESC 排序?
- perl - perl 跳过数组中的值