Это должно быть очевидно для regex pro, но я не могу найти способ сделать это.
Я хочу разбить большой файл sql на несколько после группировки строк, которые соответствуют регулярному выражению ...
Итак, я получил массив, содержащий коды стран.Я получил файл 700 Мб с тысячами строк, начиная с кода страны.Я хочу разбить файл на несколько файлов в зависимости от кода страны.
Например, строка:
("ZA", "EN", 11564, "ZA-WC", "Western Cape", "West Coast (DC1)", "Swartland", "", "7310", "Moorreesburg", "", "", -33.15528, 18.65639, "Africa/Johannesburg", "UTC+2", "N"),
Итак, я хочу сопоставить ("ZA",
Я знаю, как выполнить поиск grepчерез bash,
grep '("ZA"' data.sql
Моя проблема в том, когда я хочу выполнить итерацию с помощью сценария bash и инкапсулировать результат в переменную для перенаправления вывода в файл ... Я наткнулся на двойную кавычку, скобки выходят...
#!/bin/bash
country_code_list_path="country_code.txt"
for country_code in $(cat "$country_code_list_path");
do echo $country_code;
result=`grep '^\(\""$country_code"\", ' geodata.sql| tail -1`;
echo $result;
done
Это приводит к ошибке с (или (*
Кто-нибудь получил подсказки или альтернативное решение для достижения этой цели?