GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu získat slova mezi prvními dvěma výskyty textu/vzoru?

Zde je jeden v awk:

$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0

Added feature 3
Added feature 4

V pěkném tisku:

$ awk '/^=+$/ {     # at ===...
    f=!f            # flag state is flipped
    if(f==1)        # if its one (first ===...)
        next        # next record
    else if(f==0)   # if zero (second ===...)
        exit        # nothing more to do yeah
}
f' file             # print

Zde je další v GNU sed:

$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0

Added feature 3
Added feature 4
  • /^=\+$/,// je zkratka pro /^=\+$/,/^=\+$/ vybere řádky mezi dvěma řádky, které se skládají včetně znaménka rovná se, a pro tyto řádky se provedou příkazy mezi následujícími složenými závorkami,
  • //!p je zkratka pro /^=\+$/!p , to znamená, pokud příchozí linka není jedna z těch, které se skládají pouze z = s, vytiskněte,
  • b znamená přejít na konec cyklu (tj. projít q ),
  • q slouží k ukončení sed po vytištění vybraných řádků.

Následující verze bude fungovat se všemi Sedy vyhovující POSIX, ale vypadají 2x záhadněji:

sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file

Všimněte si, že tyto nebudou fungovat, pokud budou dva následující všechny = řádků na vstupu.


Můžete prosím také zkusit sledovat.

awk '/^=/{count++;next} count>=2{exit} {print}'  Input_file

Linux
  1. Jak zjistím rozdíl mezi dvěma daty pod bash

  2. Jak získat rozdíl (pouze doplňky) mezi dvěma soubory v linuxu

  3. Jak mohu získat dočasnou složku počítače se systémem maven?

  1. Efektivně odstraňte poslední dva řádky extrémně velkého textového souboru

  2. Jak můžete přepnout klávesy j a k ve vim?

  3. Jak porovnat pouze první řádek dvou souborů?

  1. Jak vybrat první výskyt mezi dvěma vzory, které je obsahují?

  2. Jak mohu získat seznam všech chybně napsaných slov v textu pomocí Linuxu?

  3. Jak mohu rastrovat veškerý text v PDF?