Strona 1 z 1

awk usunięcie wszystkiego poza linią przed wystąpieniem wyrażenia i nazwą pliku (dowiązania symbolicznego)

: 03 mar 2016, 17:13
autor: seb321
Witam,
próbuję zautomatyzować odtwarzanie filmów (flash) za pomocą smplayer'a. Mam plik:

Kod: Zaznacz cały

/proc/2448/fd:
/proc/31316/fd:
/proc/31343/fd:
/proc/31344/fd:
/proc/31354/fd:
/proc/31597/fd:
/proc/31613/fd:
/proc/31658/fd:
/proc/32034/fd:
/proc/3913/fd:
lrwx------ 1 root root 64 03-03 17:11 27 -> /home/seb321/.config/vivaldi/Default/Pepper Data/Shockwave Flash/.com.vivaldi.Vivaldi.qtIelm (deleted)
/proc/4441/fd:
Chciałbym by output wyglądał tak: linia przed plikiem,"/" oraz nazwa pliku (tu 27):

Kod: Zaznacz cały

/proc/3913/fd/27
Nie znam się na awk'u, więc prosiłbym o pomoc (nie musi to być koniecznie awk, równie dobrze może być sed etc.)

Re: awk usunięcie wszystkiego poza linią przed wystąpieniem wyrażenia i nazwą pliku (dowiązania symbolicznego)

: 03 mar 2016, 17:58
autor: enedil
Nie znam się na awku, sedzie, grepie, ale znam się na Pythonie:

Kod: Zaznacz cały

#!/usr/bin/env/python3

# usage:
# python3 skrypt.py nazwa_pliku

import sys

with open(sys.argv[1]) as f:
    l = f.read().split('\n')
    for index, elem in enumerate(l[:-2]):
        if not l[index+1].startswith('/proc'):
            name = l[index+1].split(' ')[7]
            print(l[index][:-1] + '/' + str(name))

Re: awk usunięcie wszystkiego poza linią przed wystąpieniem wyrażenia i nazwą pliku (dowiązania symbolicznego)

: 03 mar 2016, 18:06
autor: seb321
Może być i python, dzięki.