Как распечатать из первого периода во второй период с помощью awk? - PullRequest
0 голосов
/ 19 июня 2020

20200601.title.info.event.txt - имя файла. Я хочу использовать awk для печати всего, что находится между первыми двумя периодами. Итак, в данном случае «титул». Благодарим за любую помощь.

Файл представляет собой переменную $ 1. Все файлы отформатированы с одинаковой информацией.

Я использую

FILE = $ 1

DATE = echo $FILE | awk '{printf "%", substr ($1,1,8)' -

TITLE =

Необходимо получить TITLE в между первыми двумя периодами для использования в качестве переменной в другом месте. НАЗВАНИЕ для каждого файла будет разным. Спасибо всем за помощь.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Использование awk split() вместо FS в случае, если оно используется для чего-то еще ::

$ awk '
BEGIN {
    split("20200601.title.info.event.txt",a,".")
    print a[1]
}'
title

Использование оператора bash s =~:

$ [[ "20200601.title.info.event.txt" =~ \.[^.]*\. ]] && echo ${BASH_REMATCH[0]:1:-1}
title

Использование sed:

$ sed 's/^[^.]*.\|\..*//g' <<< "20200601.title.info.event.txt"
title

Во всех случаях вы можете сначала установить строку в переменную и использовать ее вместо строки.

1 голос
/ 19 июня 2020

Вот так:

cut -d'.' -f2 <<< 20200601.title.info.event.txt

Это простой способ вырезать строку.

И с как написал @Mihir в комментариях:

awk -F. '{print $2}' <<< 20200601.title.info.event.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...