Свяжите блок строк со следующим блоком строк

Я... предполагаю, что это зависит от того, как Вы играете видео... Проигрывание Флеш-видео не отличается от проигрывания любого другого видео, у Вас есть видеофайл, и Вы играете его с медиаплеером.

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

В свою очередь основанные на Adobe Flash плееры флеш-видео могут также использовать подобный прием для хранения временных видеофайлов. То, что происходит под этими плеерами, будет, вероятно, зависеть также от того, как виртуальная машина флэш-памяти обрабатывает временные данные (возможно, Lightspark и gnash рассматривайте их по-другому, и т.д.).

3
07.03.2013, 01:21
2 ответа

Просто сделал это с помощью сценария удара

#!/bin/bash
c=0
[[ $# -eq 0 ]] && { echo "Error: Please Specify Input file" >&2; exit 1; }

while read line
do
        if [[ $line = "-" ]]; then
                (( c++ ))
                if [[ $c -eq 1 ]]; then
                    echo ""
                fi
        elif [[ $line != "" ]] && [[ $c -ne 0 ]]; then
                echo "-   ${line}"
                (( c-- ))
                if [[ $c -eq 0 ]]; then
                    echo ""
                fi
        elif [[ $line =~ "- " ]] && [[ $c -ne 0 ]]; then
                echo "    $line"
        else
                echo "$line"
        fi
done < $1

Протестированный и работающий с входным примером.

4
27.01.2020, 21:14
  • 1
    Да, это почти работает, как я предназначил, спасибо. Я сделал редактирование с изменениями, в которых я нуждался. –  Bengt 06.03.2013, 21:59

Cred к @Rahul, но измененной версии:

#!/bin/bash

if [[ -z "$1" || ! -f "$1" ]]; then
    printf "Usage: %s <FILE>\n" "$(basename $0)"
    exit 1
fi

c=0
eoli=0
pad=4

while read line
do
        if [[ "$line" = "-" ]]; then
                 (( c++ ))
        elif (( c > 0 )); then
                echo "- $line"
                ! (( --c )) && eoli=1
        elif ((eoli)) && [[ "$line" =~ ^-\  ]]; then
                printf "%-*s%s\n" $pad "" "$line"
        else
                eoli=0
                echo "$line"
        fi
done < "$1"

Используя awk:

#!/usr/bin/awk -f

BEGIN {
    c=0
    eoli=0
    pad=4
};

{
    if (/^-$/) { 
        ++c 
    } else if (c > 0) {
        printf "- %s\n", $0
        eoli = (--c == 0)
    } else if (eoli && /^- /) {
        printf  "%*s%s\n", pad, "", $0
    } else {
        eoli=0
        print $0
    }
}
2
27.01.2020, 21:14

Теги

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