10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)
  • Q:
    Bijdrager
    JRI

    String manipulation

    Dmv het commando
    find . -name “*.swf” -ls

    krijg ik een lijst van alle .swfs en hun filesize.

    1379777 64 -rw-r–r– 1 Jiri Jiri 29860 Apr 25 11:52 ./120×600/120×600.swf
    1379417 48 -rw-r–r– 1 Jiri Jiri 21318 Apr 25 11:10 ./234×60/234×60.swf
    1379864 64 -rw-r–r– 1 Jiri Jiri 32606 Apr 25 11:40 ./336×280/336×280.swf
    1380083 48 -rw-r–r– 1 Jiri Jiri 20839 Apr 24 17:55 ./468×60/_dumpAssets/468×60.swf
    1380043 96 -rw-r–r– 1 Jiri Jiri 49116 Apr 25 11:40 ./500×400/500×400.swf
    p
    Vervolgens wil ik graag alle characters tot aan de filesize ‘trimmen’. Kan dit alleen met regExp of is er ook een commando waarmee je regels kunt manipuleren, dus de eerste 20 chars niet laten zien oid.
    Als het alleen met regExp mogelijk is, wat is dan de syntaxis?

    Alvast bedankt,

    Jiri

    Bijdrager
    PaneVino

    daar zijn legio opties voor … bijvoorbeeld :

    find . -name ‘*.swf’ -ls | tr -s ‘ ‘ | cut -d’ ‘ -f 7-

    Bijdrager
    iJoost

    Zoiets?

    [code:1:34283e8130]/^.{20}(.*)$/$1/[/code:1:34283e8130]

    Bijdrager
    JRI

    Beide bedankt voor jullie reactie. De eerste begreep ik nog, de twee met de regExp..hmmmm. Ik kan me hoofd maar niet om die regExp krijgen:)

    Jiri[/i]

    Bijdrager
    iJoost

    Ik heb nog even snel naar de man entry van find gekeken maar de -regexp switch gebruikt alleen maar een reguliere expressie voor het matchen van de bestandsnamen. Dus wat ik je gaf (in mijn onschuld ;-), eentje voor een substitutie op basis van wat je vroeg, is op zich wel correct maar heb je als parameter voor find niets aan. Sorry, voor de verwarring.

    Bijdrager
    JRI

    Ik ben nu nog meer in de war;)

    Bijdrager
    TGV

    Vergeet iJoosts bijdrage. Hij bedoelde iets anders. Die van PaneVino werkt. Hij haalt het zevende veld uit elke regel en dat is precies het stukje waar de filegrootte in staat.

    Als je nu nog in de war bent, moet je even beter uitleggen wat je wilt (wat is het doel, hoe wil je het gebruiken, etc.).

    Bijdrager
    iJoost
    ”JRI”

    Ik ben nu nog meer in de war;)

    Waarom dat nu weer? Ik zeg toch dat je aan mijn “bijdrage” voor de find niets hebt. Lijkt me duidelijk genoeg.;-)

    Bijdrager
    JRI

    Iedereen bedankt hoor. Alles is duidelijk, wat ik meer bedoelde is dat de regExp syntaxis onduidelijk is, ondanks dat het misschien niet toepasselijk is. Ik ben namelijk sinds kort een Mac gebruiker en wil graag meer leren over Unix commando’s. Zo een rexExp uitleg is dus zowieso interessant voor me/

    J

    Bijdrager
    iJoost

    Dan moet je misschien even een boek kopen of zo. Reguliere expressies zijn een taal op zich. Veel te ingewikkeld om “even uit te leggen”.

    man regexp geeft je de basics:

    Basic Regular Expressions
    A regular expression specifies a set of character strings.
    A member of this set of strings is said to be matched by the
    regular expression. Some characters have special meaning
    when used in a regular expression; other characters stand
    for themselves.

    The following one-character REs match a single character:

    1.1 An ordinary character (not one of those discussed in
    1.2 below) is a one-character RE that matches itself.

    1.2 A backslash () followed by any special character is a
    one-character RE that matches the special character
    itself. The special characters are:

    a. ., *, [, and (period, asterisk, left square
    bracket, and backslash, respectively), which are
    always special, except when they appear within
    square brackets ([]; see 1.4 below).

    b. ^ (caret or circumflex), which is special at the
    beginning of an entire RE (see 4.1 and 4.3 below),
    or when it immediately follows the left of a pair
    of square brackets ([]) (see 1.4 below).

    c. $ (dollar sign), which is special at the end of an
    entire RE (see 4.2 below).

    d. The character used to bound (that is, delimit) an
    entire RE, which is special for that RE (for exam-
    ple, see how slash (/) is used in the g command,
    below.)

    1.3 A period (.) is a one-character RE that matches any
    character except new-line.

    1.4 A non-empty string of characters enclosed in square
    brackets ([]) is a one-character RE that matches any
    one character in that string. If, however, the first
    character of the string is a circumflex (^), the one-
    character RE matches any character except new-line and
    the remaining characters in the string. The ^ has this
    special meaning only if it occurs first in the string.
    The minus (-) may be used to indicate a range of con-
    secutive characters; for example, [0-9] is equivalent
    to [0123456789]. The – loses this special meaning if
    it occurs first (after an initial ^, if any) or last in
    the string. The right square bracket (]) does not ter-
    minate such a string when it is the first character
    within it (after an initial ^, if any); for example,
    []a-f] matches either a right square bracket (]) or one
    of the ASCII letters a through f inclusive. The four
    characters listed in 1.2.a above stand for themselves
    within such a string of characters.

    The following rules may be used to construct REs from one-
    character REs:

    2.1 A one-character RE is a RE that matches whatever the
    one-character RE matches.

    2.2 A one-character RE followed by an asterisk (*) is a RE
    that matches 0 or more occurrences of the one-character
    RE. If there is any choice, the longest leftmost
    string that permits a match is chosen.

    2.3 A one-character RE followed by {m}, {m,}, or
    {m,n} is a RE that matches a range of occurrences of
    the one-character RE. The values of m and n must be
    non-negative integers less than 256; {m} matches
    exactly m occurrences; {m,} matches at least m
    occurrences; {m,n} matches any number of occurrences
    between m and n inclusive. Whenever a choice exists,
    the RE matches as many occurrences as possible.

    2.4 The concatenation of REs is a RE that matches the con-
    catenation of the strings matched by each component of
    the RE.

    2.5 A RE enclosed between the character sequences ( and )
    is a RE that matches whatever the unadorned RE matches.

    2.6 The expression n matches the same string of characters
    as was matched by an expression enclosed between ( and
    ) earlier in the same RE. Here n is a digit; the
    sub-expression specified is that beginning with the n-
    th occurrence of ( counting from the left. For exam-
    ple, the expression ^(.*)1$ matches a line consist-
    ing of two repeated appearances of the same string.

    A RE may be constrained to match words.

    3.1 < constrains a RE to match the beginning of a string
    or to follow a character that is not a digit, under-
    score, or letter. The first character matching the RE
    must be a digit, underscore, or letter.

    3.2 > constrains a RE to match the end of a string or to
    precede a character that is not a digit, underscore, or
    letter.

    An entire RE may be constrained to match only an initial
    segment or final segment of a line (or both).

    4.1 A circumflex (^) at the beginning of an entire RE con-
    strains that RE to match an initial segment of a line.

    4.2 A dollar sign ($) at the end of an entire RE constrains
    that RE to match a final segment of a line.

    4.3 The construction ^entire RE$ constrains the entire RE
    to match the entire line.

    The null RE (for example, //) is equivalent to the last RE
    encountered.

10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.