Считайте количество повторяющихся многосимвольных строк в файле в bash

Если перед идентификатором всегда стоит тире, а после идентификатора нет тире, вы можете использовать простое раскрытие параметров. % удаляет шаблон с конца значения, # с начала. Удвоение символа делает его «жадным» - убирает столько, сколько может.

#! /bin/bash

files=( 'Bob Marley - I Shot The Sheriff-2XiYUYcpsT4.mp3'
        'Audioslave - Be Yourself-WC5FdFlUcl0.mp3'
        'Bruno Mars - Treasure [Official Music Video]-nPvuNsRccVw.mp3'
      )

for file in "${files[@]}" ; do
    id=${file##*-}
    id=${id%.mp3}
    echo "$id"
done
2
19.01.2019, 20:20
1 ответ

Для этого можно использовать uniq, хотя стандартный формат его вывода немного отличается.

$ < in uniq -c
      2 16
      2 8
      2 16
      1 4
      3 8

Предполагая, что in— это файл, содержащий входные данные, вы получите то, что видите выше.

6
27.01.2020, 21:52

Теги

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