Как я могу удалить первую часть пути к файлу в хеш-файле? - PullRequest
0 голосов
/ 11 января 2019

У меня есть хеш-файл, example.md5, полный хешей и имен файлов, похожих на следующие.

e5dbb7657f770fad038220f5c69d806c  backup/example/test.txt

Как я могу пакетно отредактировать этот файл, чтобы он выглядел как.

e5dbb7657f770fad038220f5c69d806c  example/test.txt

Я просто хочу удалить первую часть каждого пути к файлу, упомянутого в хеш-файле.

РЕДАКТИРОВАТЬ: включает некоторые числа в пути к файлам, т.е. e5dbb7657f770fad038220f5c69d806c 750g/example/test.txt

Ответы [ 2 ]

0 голосов
/ 11 января 2019

С GNU sed:

sed -E -n 's/([a-z0-9]+)( *)[A-Za-z0-9]+\/(.*)/\1\2\3/p' file_name

Выход:

e5dbb7657f770fad038220f5c69d806c  example/test.txt

Пояснение:

-E : --regexp-extended(using extended regular expressions)

-n : --quiet, --silent, suppress automatic printing of pattern space

([a-z0-9]+) : Capturing first group containing the hash characters which includes a combination of one or more small alphabets and numbers

( *) : capturing second group containing whitespaces

[A-Za-z0-9]+\ : matching the first part of second column which may be a combination of one or more small alphabets,numbers and capital letters and a \


(.*) : cpaturing the third group containing any character.

\1\2\3 : backreferencing the first,second and third captured groups.

/p : to print
0 голосов
/ 11 января 2019

Вы можете использовать ниже sed

[root@967dd7743677 test]# sed 's:[a-z]*/::' hashfile
e5dbb7657f770fad038220f5c69d806c  example/test.txt
[root@967dd7743677 test]#
...