обновление одного файла на основе значений из другого с помощью AWK

Нижеследующее немного уродливо, но, кажется, делает то, что вы хотите:

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | sed -r 's/^<.*=\"http/http/' | sed -r 's/\">.*$//'
http://www.script.com/javascript1.js
http://www.css.com/style.css
http://www.iframe.com

Чтобы сохранить его в файле, просто перенаправьте его на то, что вам нужно, например:

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | sed -r 's/^<.*=\"http/http/' | sed -r 's/\">.*$//' > somefile.txt

Вот содержание:

cat somefile.txt 
http://www.script.com/javascript1.js
http://www.css.com/style.css
http://www.iframe.com

В качестве альтернативы можно переключиться на альтернативный синтаксис/метод с помощью следующего (, как упомянул пользователь 1133275):

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | perl -pe 's/^<.*=\"http/http/' | perl -pe 's/\">.*$//'

Чтобы сохранить его в файле, просто перенаправьте его на то, что вам нужно, вот так (с обновленным синтаксисом):

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | perl -pe 's/^<.*=\"http/http/' | perl -pe 's/\">.*$//' > somefile.txt
0
30.07.2019, 18:10
1 ответ

Если я вас правильно понял, вы хотите:

awk -F"," 'BEGIN{OFS=","} 
           {
            if (NR==FNR) {
                a[$1]=$3; 
                next
            } 
            if ($2 in a){
                $1=a[$2]
            }
             print
           }' data.csv file1.csv

Вы были почти там. Вам просто нужно установить $1как то, что вы сохранили из первого файла, а затем распечатать строку.

1
28.01.2020, 02:39

Теги

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