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

միավորել երկու sed հրամաններ [կրկնօրինակ]

Ինչպես կարող եմ համատեղել հետևյալ երկու sed հրամանները.

One-ը օղակում է բոլոր ֆայլերը գրացուցակում և հեռացնում դրանցից առաջին տողը: Մյուսը հեռացնում է ցանկացած կրկնակի մեջբերումներ ֆայլի տողերի սկզբից:

Հեռացրեք յուրաքանչյուր ֆայլի առաջին տողը

for each in `/bin/ls -1`;do sed -i 1d $each;done

Գծի սկիզբ

for each in `/bin/ls -1`;do sed -i 's/^"//g' $each;done

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


1

Դուք կարող եք անել:

for each in *; do sed -i.bak 's/^"//g; 1d' "$each"; done
02.12.2014
  • Այո, կրկնօրինակ ֆայլ ստեղծելը լավ պրակտիկա է: +1 դրա համար։ 02.12.2014
  • Ես ձեզ փոխառում եմ .bak +1 02.12.2014

  • 2

    Դուք կարող եք դրանք դնել sed-ի նույն կոչման մեջ, այսպես.

    for f in *; do sed -i '1d;s/^"//' "$f"; done
    

    Երկու sed հրամանները համատեղելուց բացի, ես նաև օգտագործել եմ glob *, այլ ոչ թե փորձել եմ վերլուծել ls-ը, ինչը երբեք լավ գաղափար չէ:

    Բացի այդ, ձեր փոխարինումը չպետք է լինի գլոբալ, քանի որ այն ըստ սահմանման կարող է կիրառվել յուրաքանչյուր տողի վրա միայն մեկ անգամ, այնպես որ ես հանեցի g փոփոխիչը նույնպես:

    02.12.2014
  • Մի քիչ անարդարացի է, որ ուրիշների պատասխանները ունեն 3 կողմ, մինչդեռ քոնը ընդամենը 1: 02.12.2014
  • Կարծում եմ, դա այն գինն է, որը ես վճարում եմ առաջին խմբագրման ժամանակ ամբողջական պատասխանը գրելու համար, այլ ոչ թե խաղը խաղալու համար: Դեմ չէ! 02.12.2014
  • Ամբողջական բացատրությունը գրելու համար առաջին խմբագրում +1 02.12.2014

  • 3

    Դուք կարող եք դա անել մեկ հրամանով հետևյալ կերպ.

    sed -i.bak --separate '1d ; s/^"//' *
    

    Բացատրություն

    --separate-ով դուք sed-ին ասում եք, որ ֆայլերը առանձին վերաբերվի, լռելյայն է դրանք մշակել որպես երկար մեկ ֆայլ, բայց դուք օգտագործում եք հասցեներ (1 առաջին հրամանում), այնպես որ լռելյայն չի աշխատում:

    '1d ; s/^"//'-ը պարզապես միավորում է երկու հրամանները (առանձնացված ;-ով):

    02.12.2014
  • Ես չգիտեի այս gnu --separate տարբերակի մասին +1 02.12.2014

  • 4

    Դուք կարող եք օգտագործել -e՝ նույն տողում տարբեր sed հրամաններ կատարելու համար՝ sed -e 'command_1' -e 'command_2' ... -e 'command_n': Կարող եք նաև օգտագործել sed 'command_1; command_2; ...; command_n:

    Եկեք օգտագործենք առաջին տարբերակը և շրջենք ֆայլերի միջով.

    for file in *
    do
        sed -i.bak -e '1d' -e 's/^"//' "$file"
    done
    

    Նկատի ունեցեք նաև, որ ես օգտագործում եմ for file in *-ը, որպեսզի *-ն ընդարձակվի մինչև ընթացիկ գրացուցակի ֆայլերը: Սա ավելի լավ է, քան ls-ի արդյունքը վերլուծելը (Ինչու չպետք է վերլուծել ls(1)-ի ելքը լավ ընթերցված է):

    Ի վերջո, լավ պրակտիկա է -i-ն օգտագործելիս կրկնօրինակ ֆայլ ստեղծելը, ինչպես առաջարկում է anubhava-ն: Այս կերպ դու միշտ ապահով կողմում ես :)

    02.12.2014
  • Ես իրականում պատրաստվում էի ջնջել իմ պատասխանը, քանի որ դու առաջինը պատասխանեցիր և շատ ավելի մանրամասն +1 02.12.2014
  • Նոր նյութեր

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

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

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

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

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

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

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