( bucko | 2024. 07. 12., p – 09:36 )

InsertTimestamp()
{
    print -n $1 |
    case ${2:-N} in
        N)
            cat
            ;;
        S)
            sed 's/.log$/_??????????????.log/'
            ;;
        D)
            sed 's/.log$/_????????.log/'
            ;;
        R)
            if ParamExists wide_backup_timestamp
            then
                sed 's/\(\.BAK\|\.TRN\)$/_????_??_??_??????_???????\L\1/;s/\(_tlog_\|_db_\)/_backup_/'
            else
                print -n $1|sed 's/\(\.BAK\|\.TRN\)$/_????????????\1/'
            fi
            ;;
        X)
            sed 's/.log$/-???????????????.log/'
            ;;
        *)
            cat
            ;;
    esac
}

SetParam $File.filename $(Cygpath $(InsertTimestamp $(ReadReg $(GetParam $REGISTRY_PATH $SYSTEM)) $(GetParam $TIMESTAMP.$File $SYSTEM)))

Itt egy példa arra, amit el sem tudsz képzelni. :-D Egy pipeline két helyen is tartalmazza a cat-ot. Az utolsó sor példa a felhasználásra.

A függvény a linux alatt filesystemben leképzett Windows registry-ben tárolt fájlnév patternbe illeszt be egy timestamp értéket az aktuális adattípusnak megfelelő módon. Ráadásul az elején szereplő print -n alias cat -n. Persze még a sed is kiutálható a parancsból.