У меня есть файл с информацией о стране, городе и штате, среди прочего. Содержимое файла выглядит примерно так: (показана только часть, относящаяся к вопросу)
Some lines (rows) of text
...
United States
Memphis, TN 38116-3252
...
More lines of text
...
United States
Austin, TX 78726
...
Я бы хотел добавить новую строку перед почтовым индексом или после TN (например), а также заменить ',' на новую строку. Но я предполагаю, что вторая часть будет проще.
Желаемый формат:
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
...
Конечной целью является импорт данных в электронную таблицу, например:
Some info | Country | State | City | Etc.
abc | United..| Texas | Austi| zcx
Я открыт для всего, что работает с sed, awk и т. д.
решение1
Я бы использовал sed
для этого:
sed -E 's/, /\n/;s/([A-Z]{2}) /\1\n/' States
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
Первое выражение s/, /\n/
ищет запятую, за которой следует пробел, и заменяет ее на новую строку.
Второе выражение s/([A-Z]{2}) /\1\n/
ищет любые две заглавные буквы, за которыми следует пробел, и заменяет их этими буквами, за которыми следует новая строка.
sed --version
sed (GNU sed) 4.2.2