исключить данные из последней / до конца строки - PullRequest
0 голосов
/ 29 октября 2019

У меня есть входной файл (myfile) в виде:

/data/152.18224487:2,S/proforma invoice.doc
/data/152.916612:2,/proforma invoice.doc
/data/152.48152834/Bank T.T Copy 12 d3d.doc
/data/155071755/Bank T.T Copy.doc
/data/1521/Quotation Request.doc
/data/15.462/Quotation Request 2ds.doc
/data/15.22649962_test4/Quotation Request 33  zz (.doc
/data/15.226462_test6/Quotation Request.doc   

, и мне нужно исключить все данные после последнего символа "/" до конца строки, чтобы получить этот вывод:

/data/152.18224487:2,S
/data/152.916612:2,
/data/152.48152834
/data/155071755
/data/1521
/data/15.462
/data/15.22649962_test4
/data/15.226462_test6

Как я могу это сделать из командной строки linux?

Это дополнительный вопрос, связанный с извлечение последнего раздела данных из файла с помощью команды linux

Ответы [ 3 ]

2 голосов
/ 29 октября 2019

Этот вопрос сочетается с вашим предыдущим вопросом , т.е. данные:

>> Vi 'x' found in file /data/152.916612:2,/proforma invoice.doc
>> Vi 'x' found in file /data/152.48152834/Bank T.T Copy 12 d3d.doc
>> Vi 'x' found in file /data/155071755/Bank T.T Copy.doc
...

WWK:

$ awk '
(s=match($0,/found in file /)+RLENGTH) && (match(substr($0,s),/.*\//)) {
    print substr($0,s,RLENGTH-1)
}' file

Вывод:

/data/152.18224487:2,S
/data/152.916612:2,
/data/152.48152834
...
2 голосов
/ 29 октября 2019

Не могли бы вы попробовать следующее.

awk 'match($0,/\/.*\//){print substr($0,RSTART,RLENGTH-1)}' Input_file

Выше будет выглядеть от / до последнего вхождения / в случае, если ваш Input_file может начать отличаться от /, затем попробуйте выполнить следующее.

awk 'match($0,/.*\//){print substr($0,RSTART,RLENGTH-1)}' Input_file
1 голос
/ 30 октября 2019
awk -F/ '{print "/"$1$2"/"$3}' file 

/data/152.18224487:2,S
/data/152.916612:2,
/data/152.48152834
/data/155071755
/data/1521
/data/15.462
/data/15.22649962_test4
/data/15.226462_test6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...