Экран GNU: не удается возобновить экран после прерванного удаленного сеанса

Предполагая, что вам нужны подстановки в формате file_B.txt, как предложил Спайк, облегченная база данных, такая как sqlite, могла бы это сделать.

Следующее будет читать file_A.txt и file_B.txt во временную базу данных в памяти и выводить результаты в файл TSV MODIFIED-file_B.txt

sqlite3 -separator $'\t' << EOF  > MODIFIED-file_B.txt
CREATE TABLE a ( id INTEGER PRIMARY KEY, name );
.import file_A.txt a
CREATE TABLE b (id1 INTEGER,name1 TEXT,id2 INTEGER,name2 TEXT);
.import file_B.txt b
SELECT b.id1,
       ifnull((SELECT name from a WHERE a.id=b.id1),b.name1),
       b.id2, 
       ifnull((SELECT name from a WHERE a.id=b.id2),b.name2)
FROM b;
EOF

Это считывает каждый файл в отдельную таблицу, а затем выводит таблица b с вашими заменами A, если они доступны, в противном случае возвращает исходное B_name.

Если использование памяти вызывает беспокойство, вы можете запустить его с именем файла, например sqlite3 -separator $ '\ t'porary.db для создания временного файла.

2
24.12.2015, 00:56
0 ответов

Теги

Похожие вопросы