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

Տպեք տողեր մեկ ֆայլից, որոնք չեն պարունակվում մեկ այլ ֆայլում

Ես ուզում եմ տպել տողեր, որոնք գտնվում են մեկ ֆայլում, բայց ոչ մեկ այլ ֆայլում: Այնուամենայնիվ, ոչ մի ֆայլ տեսակավորված չէ, և ես պետք է պահպանեմ սկզբնական կարգը երկու ֆայլերում:

 contents of file1:
 string2
 string1
 string3

 contents of file2:
 string3
 string1

 Output:
 string2

Կա՞ մի պարզ սցենար, որով ես կարող եմ դա անել:

28.04.2011


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


1
fgrep -x -f file2 -v file1

-x համապատասխանում է ամբողջ տողին

-f FILE-ը նախշեր է վերցնում FILE-ից

-v-ն շրջում է արդյունքները (ցույց տալ չհամընկնող)

28.04.2011
  • @ysth: Այո, fgrep նշանակում է (ֆայլ)grep, հետևաբար՝ -f տարբերակը: Սա վերադառնում է Unix-ի հին տարբերակներին: Կարծում եմ, gnu grep-ն ավելորդ է դարձնում նման տարբերակումը: ;-) Ի դեպ, FILE-ը կարող է պարունակել համապատասխան օրինաչափությունների բազմաթիվ տողեր: 29.04.2011
  • @shellter. ոչ, fgrep նշանակում է ֆիքսված grep, կարծում եմ; կանոնավոր արտահայտությունների փոխարեն ֆիքսված տողեր, որոնք նույնպես կարող են կանչվել որպես grep -F: Ես առաջարկում էի, որ այն պետք է լինի fgrep փոխարեն grep, և իսկապես այն փոխվել է: 29.04.2011
  • @ysth : Դե գրքում, որը ես կարդացել եմ X տարի առաջ, նրանք ասացին (ֆայլ) grep: Fixed(grep) per ֆիքսված տողերի համար նույնպես լավ աշխատանք է կատարում ֆունկցիոնալությունը նկարագրելու համար: Շնորհակալություն կիսվելու համար. Սրտանց! 29.04.2011
  • @j.lee Եթե այս պատասխանը ձեզ բավարարում է, խնդրում ենք մտածել այն ընդունելու մասին: 14.06.2011

  • 2

    Perl-ում բեռնեք file2-ը հեշի մեջ, այնուհետև կարդացեք file1-ի միջոցով՝ դուրս բերելով միայն այն տողերը, որոնք չկան file2-ում:

    use strict;
    use warnings;
    
    my %file2;
    open my $file2, '<', 'file2' or die "Couldn't open file2: $!";
    while ( my $line = <$file2> ) {
        ++$file2{$line};
    }
    
    open my $file1, '<', 'file1' or die "Couldn't open file1: $!";
    while ( my $line = <$file1> ) {
        print $line unless $file2{$line};
    }
    
    28.04.2011
  • Ֆայլերի անունները թողեք որպես փաստարկներ և սկրիպտը կոչեք exceptի նման, որպեսզի կարողանաք ասել except file2 file1 > resultի նման բաներ: 29.04.2011

  • 3

    comm <(sort a) <(sort b) -3 → b ֆայլի տողեր, որոնք a ֆայլում չեն

    19.05.2016

    4
  • Կարծում եմ, որ պետք է awk 'FNR==NR{a[$0];next}!($0 in a)' file2 file1 դիտարկել !ը 29.04.2011
  • Եվ awk 'FNR==NR{ a[$0]; next } !($0 in a) || /^$/' եթե ցանկանում եք պահպանել դատարկ տողերը: 08.01.2016
  • Նոր նյութեր

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

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

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

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

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

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

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