LINUX.ORG.RU
ФорумAdmin

извлечь подстроку egrep/sed/etc...

 , , ,


0

1

Как извлечь имя файла из строки выхлопа «ps aux» ? Путь к файлу каждый раз разный.

Файл /volume1/video/classic/Now We've Seen It All!.1976.avi

plex     24029 33.3  3.4 330284 63656 ?        Sl   22:37   6:01 /volume1/@appstore/Plex Media Server/Plex Transcoder -codec:0 mpeg2video -codec:1 ac3 -i /volume1/video/classic/Now We've Seen It All!.1976.avi -filter_complex [0:0]yadif[0];[0]scale=w=768:h=576[1];[1]format=pix_fmts=yuv420p|nv12[2] -filter_complex [0:1] aresample=async=1:ocl='stereo':osr=48000[3] -map [2] -metadata:s:0 language=eng -codec:0 libx264 -crf:0 16 -maxrate:0 7752k -bufsize:0 15504k -r:0 25 -preset:0 veryfast -x264opts:0 subme=1:me_range=4:rc_lookahead=10:me=hex:8x8dct=0:partitions=none -force_key_frames:0 expr:gte(t,0+n_forced*5) -map [3] -metadata:s:1 language=rus -codec:1 aac -b:1 256k -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 5 -segment_start_number 0 -segment_copyts 1 -segment_time_delta 0.0625 -segment_list http://127.0.0.1:32400/video/:/transcode/session/vgh38cdsdmd70euan70xdqh8/cf3a3188-52f9-4b26-8b63-1c348a7c9348/seglist -segment_list_type csv -segment_list_size 2147483647 -segment_list_separate_stream_times 1 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 media-%05d.ts -start_at_zero -copyts -vsync cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/vgh38cdsdmd70euan70xdqh8/cf3a3188-52f9-4b26-8b63-1c348a7c9348/progress


Последнее исправление: evi9 (всего исправлений: 1)

Ответ на: комментарий от bass

По идее признак такой, начало где можно выдирать имя файла

-codec:

конец

-filter_complex

файлы могут быть разными расширениями .mpeg, .avi, .mkv

evi9
() автор топика
Ответ на: комментарий от evi9
|sed "s/^.* -i //g" |sed -r "s/ -\S+ .*$//g"

если обязательно после фильтр идет, то

|sed "s/^.* -i //g" |sed -r "s/ -filter_complex .*$//g"

anonymous
()
Ответ на: комментарий от evi9

ps aux| awk -F"-i" '/Plex/ {print $2}' | awk -F"-filter_complex" '{print $1}'

bass ★★★★★
()

А зачем тебе именно извлекать из ps aux? Может исходная задача позволяет решения без «удаления гланд через зад»?

anonymous
()
Ответ на: комментарий от anonymous

Там где нужны: в echo. А вам стоило бы подучить bash, если вы это не понимаете.

vodz ★★★★★
()
Ответ на: комментарий от anonymous

Может быть и можно, но я не смог найти api или cli утилиты к plex-серверу. Возможно я плохо искал.

evi9
() автор топика

Так пойдет?

$ lsof -a -d 0-999 -c "plex" | grep -v '\/dev'
Если нет - показывай реальный вывод команды у тебя, и что именно не так.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.