AMcoder - javascript, python, java, html, php, sql

Քաղեք ֆայլերի անունների ցանկը zip արխիվում, երբ «unzip -l»-ը

Երբ ես անում եմ unzip -l zipfilename, տեսնում եմ

1295627  08-22-11 07:10   A.pdf
473980  08-22-11 07:10   B.pdf
...

Ես ուզում եմ տեսնել միայն ֆայլերի անունները: Ես փորձում եմ սա

unzip -l zipFilename | cut -f4 -d" "

բայց ես չեմ կարծում, որ սահմանազատողն ընդամենը " " է:

22.08.2011


Պատասխանները:


1

Ենթադրելով, որ ֆայլերից ոչ մեկը անունների մեջ բացատներ չունի.

unzip -l filename.zip | awk '{print $NF}'

Իմ unzip ելքը ունի և՛ վերնագիր, և՛ ստորագիր, ուստի awk սցենարը դառնում է.

unzip -l filename.zip | awk '/-----/ {p = ++p % 2; next} p {print $NF}'

Տարբերակ, որը կարգավորում է ֆայլերի անունները բացատներով.

unzip -l filename.zip | awk '
    /----/ {p = ++p % 2; next}
    $NF == "Name" {pos = index($0,"Name")}
    p {print substr($0,pos)}
'
22.08.2011
  • Հնարավո՞ր կլինի, եթե կարողանաք մի փոքր բացատրել ձեր awk սցենարը: լիովին հասկանում եք, եթե դրա համար ժամանակ չունեք: 22.08.2011
  • Awk-ն ունի տողում NF փոփոխական, որը դաշտերի քանակն է: $NF-ը վերջին դաշտի արժեքն է, այնպես որ դուք ստանում եք ֆայլի անունը: Երկրորդ սկրիպտն աշխատում է՝ p փոփոխականը դնելով true, երբ հայտնվում է ------ով առաջին տողը, իսկ {printf $NF} բլոկը գործում է միայն այն դեպքում, եթե p-ը true է: 22.08.2011
  • Դուք կարող եք ազատվել վերնագրից և ստորագրից՝ օգտագործելով -qq տարբերակը՝ unzip -l -qq filename.zip: Այնուհետև կաշխատի ավելի պարզ awk հայտարարությունը: 29.11.2012

  • 2

    Դա անելու ամենահեշտ ձևը հետևյալ հրամանն օգտագործելն է.

    unzip -Z -1 archive.zip
    

    or

    zipinfo -1 archive.zip
    

    Սա թվարկելու է միայն ֆայլերի անունները՝ յուրաքանչյուր տողում մեկ:

    Երկու հրամանները ճիշտ համարժեք են: -Z տարբերակը հուշում է unzip-ին վերաբերվել մնացած տարբերակներին որպես zipinfo ընտրանքներ: Տես տղամարդու էջերը unzip և zipinfo:

    29.11.2012

    3

    Եթե ​​Ձեզ անհրաժեշտ է ապահովել ֆայլերի անունները առանց բացատներով, փորձեք.

    unzip -l zipfilename.zip | awk -v f=4  ' /-----/ {p = ++p % 2; next} p { for (i=f; i<=NF;i++) printf("%s%s", $i,(i==NF) ? "\n" : OFS) }'
    
    14.11.2012

    4

    Օգտագործեք awk:

    unzip -l zipfilename | awk '{print $4}'
    
    22.08.2011
  • Այնուամենայնիվ, զգուշացեք չար ֆայլերի անուններից, որոնք պարունակում են բացատներ: 22.08.2011
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..