Прочитайте столбец из файла и добавьте конкретный столбец другого файла

У меня есть два файла:

FiLea:

Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW 

FILEB:

 NE_Name SW ABC 4.4 ASD 4.3 ... ... 

Обратите внимание, что fileA состоит только из одной строки и имеет несколько заголовков (например, имя, название сайта и т. Д.). Принимая во внимание, что файлB имеет 2 поля с огромным количеством строк.

Я хочу объединить эти 2 файла как таковые:

Выходной файл:

 Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW ABC,,,,,,4.4 ASD,,,,,,4.3 

Таким образом, выходной файл будет иметь все заголовки, присутствующие в файлеA, и будет расширять поля: «Имя» (с значениями «NE_Name», полученными из файла B) и «SW» (со значениями «SW», полученными из файла B).

Как я могу получить этот выходной файл из 2 входных файлов, упомянутых выше?

  • Повторно распечатать массив в определенном формате?
  • Поиск и замена вопроса
  • Обработка переменной bash с помощью sed
  • добавление букв и символов в столбец с помощью awk или sed?
  • Поиск дубликатов экземпляров тега в файле
  • Хотите напечатать формат таблицы с несколькими строками в командной строке
  • Как я могу отображать 3 строки текста за один раз на 1 строку?
  • `sed: -e выражение # 1, char 4: неизвестная команда:` но окончательные строки в порядке
  • 3 Solutions collect form web for “Прочитайте столбец из файла и добавьте конкретный столбец другого файла”

    Вот один из способов с awk :

     $ awk -F, 'NR==1{nf=NF-1; print $0; FS=" "} \ NR>2{printf("%s%.*s%s\n",$1,nf,",,,,,,,,,,,,,,,,,",$2)}' fileA fileB Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW ABC,,,,,,4.4 ASD,,,,,,4.3 

    Важнейшей частью является printf где мы печатаем первое и третье поля из файла B, разделенные символом , этот номер берется из первого файла как nf=NF-1 .

     tail -n+2 fileB | sed -r 's/[[:space:]]+/,,,,,,/' | cat fileA - > Output 

    Пояснения

    tail -n +2 fileB записывает конец файла B, начиная со второй строки, так как мы хотим игнорировать первую строку.

    sed , используя -r, --regexp-extended (для значения + метасимвола « по крайней мере один ») заменяет первую группу интервальных символов ожидаемым количеством запятых по вашему примеру.

    cat наконец, объединяет файл A и данные, полученные от sed через канал, называемые - , и записывает его в stdout , который перенаправляется в Output файл по вашему запросу.

    Ограничения

    Не будет работать, если в столбцах NE_Name или SW есть пробелы.

    Другой подход sed :

     $ sed 's/ */,,,,,,,/;/NE_/d' fileA fileB Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW ABC,,,,,,,4.4 ASD,,,,,,,4.3 

    Первая команда sed заменяет 3 или более пробела 7 запятыми, а вторая удаляет любую строку, соответствующую NE_ .

    Interesting Posts

    / etc / network / interfaces не загружаются правильно при загрузке

    Датчики: как отобразить температуру в Фаренгейте?

    Группы пользователей Linux и разрешения файловой системы

    Изменить имя поиска по умолчанию

    RHEL ip n Подключенное устройство имеет устаревшее соединение?

    Пользователь Windows AD для сброса пароля при входе в Linux

    Показывать только скрытые файлы (файлы точек) в псевдониме ls

    Как разбить RX и TX байты по процессу?

    Какие аппаратные компоненты не требуют драйвера и почему

    Почему sudo -E не поддерживает переменную среды $ HOME?

    Как узнать, что кто-то использует Keylogger на машине, которую я использую?

    Shell Script: используйте «find» для запуска оболочки команду, содержащую «имя файла» (без расширения), возвращенную из «find»,

    Cron автоматизированный сценарий bash для запуска run 1 скрипт bash, затем другой, плюс проверка целостности

    Есть ли более эффективный способ дефрагментации Linux-памяти, кроме перезагрузки?

    Смутно о границе слова

    Linux и Unix - лучшая ОС в мире.