regex - 使用另一个文本文件的单词列表顺序替换一个单词 - data_file
问题描述
在我的脑海中,我有:
阅读“original_file”,将第 3 行更改"ENTRY1"
为data_file
. 写出来new_file1
。读取“original_file”,将第 3 行更改"ENTRY1"
为data_file
. 写出new_file2
重复整个data_file
.
摘录/示例:
original_file:
line1 {
line2 "id": "b5902627-0ba0-40b6-8127-834a3ddd6c2c",
line3 "name": "ENTRY1",
line4 "auto": true,
line5 "contexts": [],
line6 "responses": [
line7 {
------------
data_file:(simply a word/number List)
line1 AAA11
line2 BBB12
line3 CCC13
..100lines/Words..
-------------
*the First output/finished file would look like:
newfile1:
line1 {
line2 "id": "b5902627-0ba0-40b6-8127-834a3ddd6c2c",
line3 "name": "AAA11",
line4 "auto": true,
line5 "contexts": [],
line6 "responses": [
line7 {
------------
and the Second:
newfile2:
line1 {
line2 "id": "b5902627-0ba0-40b6-8127-834a3ddd6c2c",
line3 "name": "BBB12",
line4 "auto": true,
line5 "contexts": [],
line6 "responses": [
line7 {
------------
..等等。
我一直在尝试使用 sed,比如
awk 'FNR==$n1{if((getline line < "data_file") > 0) fprint '/"id:"/' '/""/' line ; next}$n2' < newfile
和..作为shell脚本的开始..
#!/bin/bash
n1=3
n2=2
sed '$n1;$n2 data_file' original_file > newfile
任何帮助将不胜感激..我一直在尝试将SO上发现的各种技术结合在一起..一次一件事..学习如何替换..然后从第二个文件替换..但这超出了我的知识范围。再次感谢。我的 data_file 中有大约31,000
LINES .. 所以这是必要的.. (自动化)。它是一次性的,但对其他人可能非常有用?
解决方案
假设我们正在尝试更改某些 JSON 数据中的“名称”,并且新值将是纯字母数字(以便双引号正常工作):
#!/bin/bash
n=1
cat data_file | while read value; do
jq <original_file >"newfile$n" ".name = \"$value\""
((n++))
done
推荐阅读
- asp.net-core-2.0 - 如何使用.net core 配置多个 okta 服务器的身份验证?
- python - 在 python 中,如何使嵌套模块看起来没有嵌套到 import 语句中?
- java - 选项和函数的使用
- spring-boot-test - Spring MVC 测试 - 将空值作为参数传递
- python - 如何修复“AttributeError”和 OpenCV 错误
- python - 为什么我的列表不能保存 QListWidget 中的所有内容?
- mysql - 将四个表合并为两个表,并具有链接的唯一列 ID
- vue.js - vue Cesium Map 部分加载
- apache-spark - 使用 select 和 for 循环替换现有列中的值
- python - 可靠地检测 Spyder IDE