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

Ինչպես ջնջել որոշակի թվով պատահական գծեր, որոնք համապատասխանում են օրինակին

Ես ունեմ svg ֆայլ՝ կետերի ցանցով, որը ներկայացված է տողերով, որոնց մեջ կա use բառը: Ես կցանկանայի ջնջել այդ use օրինաչափությանը համապատասխանող որոշակի թվով պատահական տողեր, ապա պահպանել ֆայլի նոր տարբերակը: Այս պատասխանը շատ մոտ էր:

Այսպիսով, դա կլինի սրա համադրությունը (ջնջեք մեկ պատահական տող կոնկրետ տիրույթում).

sed -i '.svg' $((9 + RANDOM % 579))d /filename.svg 

և սա (ջնջել use օրինաչափությանը համապատասխանող բոլոր տողերը):

sed -i '.svg' /use/d /filename.svg

Այլ կերպ ասած, տրամաբանությունը կլինի այսպես.

sed -i delete 'x' number of RANDOM lines matching 'use' from 'input.svg' and save to 'output.svg'

Ես գործարկում եմ այս հրամանները Terminal-ից Mac-ում և անփորձ եմ շարահյուսության հետ, ուստի դրա համար հրամանի ձևաչափումը իդեալական կլինի:

13.10.2014

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


1

Ջնջել «օգտագործում» պարունակող յուրաքանչյուր տողը 10% հավանականությամբ.

awk '!/use/ || rand() > 0.10' file

Պատահականորեն ջնջեք «օգտագործում» պարունակող ուղիղ մեկ տող.

awk -v n="$(( RANDOM % $(grep -c "use" file) ))" '!/use/ || n-- != 0' file

Ահա մի օրինակ կանչ.

$ cat file
some string
a line containing "use"
another use-ful line
more random data

$ awk -v n="$(( RANDOM % $(grep -c "use" file) ))" '!/use/ || n-- != 0' file
some string
another use-ful line
more random data

use պարունակող տողերից մեկը հանվել է։

13.10.2014
  • Սրանք կարծես միայն վերադարձնում են «օգտագործում» պարունակող բոլոր տողերի հսկայական ցուցակը 14.10.2014
  • @substancejoy վերջինում տառասխալ է եղել։ 14.10.2014
  • Հմմ, հիմա երկրորդը տպում է ֆայլն ամբողջությամբ 14.10.2014
  • @substancejoy Ես ավելացրել եմ վազքի օրինակ: Փորձեք այն ճշգրիտ պատճենել և տեսնել, թե արդյոք այն դեռ չի աշխատում (մի փորձեք հարմարեցնել այն նախքան այն ինչպես կա փորձարկվելը): 14.10.2014
  • Լավ, ստացվեց: Թեստը տպում է ճիշտ այնպես, ինչպես սպասվում էր, և այն աշխատեց նաև svg ֆայլի համար: Այնուամենայնիվ, ինձ անհրաժեշտ է, որ այն փոփոխի իրական ֆայլը կամ պահպանի ֆայլի նոր պատճենը ջնջված տողերով: Անհրաժեշտ է նաև հեռացնել որոշակի թվով տողեր: 14.10.2014

  • 2

    Սա կարող է աշխատել ձեզ համար. (GNU sed & sort):

    sed -n '/\<use\>/=' file | sort -r | head -5 | sed 's/$/d/' | sed -i.bak -f - file
    

    Ֆայլից հանի՛ր use բառը պարունակող տողերի համարները։ Պատահականորեն դասավորեք այդ տողերի համարները, այնուհետև վերցրեք առաջին խոսքը 5-ը և ստեղծեք sed script՝ դրանք բնօրինակ ֆայլից ջնջելու համար:

    14.10.2014
    Նոր նյութեր

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

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

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

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

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

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

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