Как добавить столбец от файла до последнего столбца другого файла с помощью awk?

В ударе включите globstar опцию так, чтобы ** соответствия любой уровень подкаталогов. Можно сделать это от Вашего ~/.bashrc. Также включите extglob опции активировать ksh расширили шаблоны.

shopt -s globstar extglob

Затем:

grep PATTERN **/trunk/src/**/*.@(h|cpp)

Остерегайтесь того удара версии, до 4,2 следуют за символьными ссылками на каталоги, когда Вы используете **.

Zsh делает это легче, Вы не должны устанавливать опции и можете просто ввести

grep PATTERN **/trunk/src/**/*.(h|cpp)

Если командная строка является слишком длинной, и Вы находитесь на Linux или другой платформе с GNU grep, можно сделать grep рекурсивно вызовите вместо оболочки, чтобы экономить на длине командной строки.

grep -R --include='*.cpp' --include='*.h' PATTERN **/trunk/src

4
11.11.2014, 11:22
2 ответа
awk '{f1 = $0; getline<"file2"; print f1, $2}' < file1 > file3

Выходной файл будет иметь одинаковое количество строк, что и file1 , поэтому последний столбец будет пустым для последних строк, если File2 ] короче, а последние значения в File2 будут проигнорированы, если оно больше.

В качестве альтернативы, как предложено Костас:

awk '{getline f1 <"file1" ; print f1,$2}' < file2 > file3

Это время, хотя File3 будет иметь такое же количество строк, как file2 . Это означает, что упорядочение столбцов будет затронуто, если File2 длиннее File1 .

С:

awk '{print $2}' < file2 | paste file1 - > file3

File3 будет иметь такое же количество строк, как самый большой из файлов и File2 . Данные не будут отброшены, но, как указано выше, если File2 дольше, чем File1 , последние строки в File3 будут иметь File2 данные в первом / втором столбце.

1
27.01.2020, 21:01

Попытка

$ awk 'NR==FNR{a[NR]=$2;next}{print $0,a[FNR]}' file2 file1
col11 col12 col13 ... col1n col22

{[НОМЕР] = 2$; затем} часть будет выполняться только для первого файла в списке ( file2), и когда awk обработает второй файл ( file1), мы печатаем целую строку file1 и добавляем элемент таблицы [FNR], который содержит значение второго поля file2.

0
27.01.2020, 21:01

Теги

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