Необходимо проверить 2 файла и записать 3-й файл

POSIX readне имеет -p, это не -расширение POSIX, реализованное в некоторых оболочках (, таких как bash ). В настоящее время вы используете /bin/sh, который, вероятно, является совместимой с POSIX -оболочкой с ограниченными расширениями, если вы хотите использовать расширения bash, вам следует вместо этого рассмотреть возможность использования /bin/bash.

Вместо этого вы можете сделать это с помощью POSIX:

printf 'Press Enter to continue'
read REPLY
-3
17.03.2020, 10:09
2 ответа

Попробуйте это,

awk -F ',' 'FNR==NR {a[$1]; next} $2 in a{print $2", "$8}' file1 file2 | sed 's/,.*\\/, /g'

123, ddd
124, uuu
221, vvv
333, xxx
  • -F '[\\\\,]'нам требуются два разделителя в соответствии с вашими ожидаемыми выводами (запятая и обратная косая черта ). чтобы избежать поведения обратной косой черты, нам потребовалось 4 обратной косой черты.
0
28.04.2021, 23:20

Попробуйте также

awk -F ',' '
FNR == NR   {T[$1]
             next
            }
$2 in T     {n = split ($8, X, /\\/)
             print $2, X[n]
            }
' OFS=, file1 file2 
123,ddd
124,uuu
221,vvv
333,xxx

Адаптируйте номера полей по вкусу (например.$8-->$55). Если это не удовлетворяет ваш запрос, сузьте/улучшите свою спецификацию и образцы данных.

0
28.04.2021, 23:20

Теги

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