скрипт в bash со строкой - PullRequest
0 голосов
/ 01 марта 2020

У меня есть полный список имен, разделенных запятыми:

second_surnameA first_surnameA, nameA second_surnameB first_surnameB, nameB second_surnameC first_surnameC, nameC ....

Поэтому я пытаюсь с помощью сценария bash записать имена всех людей (A, B, C) в каждом файле:

  second_surnameA first_surnameA, nameA

  second_surnameB first_surnameB, nameB

  second_surnameC first_surnameC, nameC

Я выполнил:

cat names_file.txt | tr ',' '\n'

- это почти то, что мне нужно, но не enouth. Есть идеи?

Ответы [ 2 ]

1 голос
/ 01 марта 2020

С awk:

awk '{for (i=1;i<=NF;i=i+3) print $i,$(i+1),$(i+2)}' inputfile

Он просто использует пробелы в качестве разделителей для каждого поля и печатает три из них для каждой строки.

1 голос
/ 01 марта 2020

С GNU sed:

sed -re 's/(\S+ +){3}/&\n/g' input_file | sed 's/ $//' > output_file

Шаблон (\S+ +){3} соответствует три раза {3} группе, состоящей из: одного или нескольких непробелов \S+, за которыми следуют один или несколько пробелов. Строка замены &\n добавляет новую строку к каждому сопоставленному шаблону. Второй sed удаляет завершающие пробелы и записывает в output_file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...