A kérdésre itt már vannak válaszok :

megjegyzések

  • módon, az Ön itt bemutatott példája alapján érdekelheti testvéroldalunk, a Bioinformatika .
  • tévedtem a visszavonás oldalán saját közeli szavazásom, mert a kapcsolt kérdésre a leginkább meggyőző válaszok azok, amelyek előre látják a - lehetőségét, és a jelenlegi ilyen válaszok vagy PCRE-t igényelnek (erre nincs szükség itt), vagy feltételezzünk elválasztóként ASCII szóköz karaktert, ne pedig tabulátor karaktert.

Válasz

A div id = “d32361c3f3″>

:

Megjegyzések

  • Szép érintés a teljes összeggel!
  • A Plus használhatja a awk '{print $1}' <inputfile|sort -n|uniq -c kap egy összefoglalót a címkeszámlálási gyakoriságokról.
  • Nincs szükség közvetett inputfile közvetítésre <, de igen.

Válasz

A testben lévő kérdés

Válassza ki azokat a sorokat, amelyek 1 betűvel kezdődnek, és egy szóköz követ

grep -c "^1\s" file grep -c "^1[[:space:]]" file 

Ez szintén megadja a számlálást sorok (a wc hívása nélkül)

A címben szereplő kérdés

A 1 not , majd egy másik szám (vagy semmi), amelyet követ:

grep -cE "^1([^0-9]|$)" file 

De mindkét fenti megoldás érdekes kérdéseket, olvass tovább.


A kérdés törzsében a felhasználó azt állítja, hogy a fájl “tabulátorral tagolt”.

Elhatároló

fül

A wi-vel kezdődő sor a 1, amelyet egy tabulátor követ (egy tényleges fül a parancsban). Ez nem sikerül, ha az elválasztó szóköz (vagy bármilyen más, vagy nincs):

grep "^1 " file 

szóköz

A div id = “12b6c0e5e6″>

, amelyet szóköz követ (egy tényleges szóköz a parancsban). Ez nem sikerül, ha a határoló bármely más vagy nincs:

grep "^1 " file 

fül vagy szóköz

grep "^1( | )" file grep "^1[[:blank:]]" file 

szóköz

Rugalmasabb lehetőség, ha több szóköz (vízszintes és függőleges) karaktert tartalmaz. A [:space:] karakterkészlet (szóköz), \t (vízszintes fül) ), \r (kocsi vissza), \n (újsor), \v (függőleges fül ) és \f (űrlaptáblázat). De a grep nem egyezhet új sorral (ez egy belső korlátozás, amelyet csak a -z opcióval lehet elkerülni). Lehetőség van leírásra használni a határolón. Lehetséges és rövidebb a \s GNU elérhető rövidítése is:

grep -c "^1[[:space:]]` file grep -c "^1\s" file 

De ez az opció nem fog sikerülni, ha az elválasztó valami kettőspont : vagy bármely más írásjel (vagy bármely betű).

Határ

Vagy, használhatjuk az átmenetet egy számjegytől a “nem számjegy” határig, jól, valójában “egy olyan karakterhez, amely nincs [_[:alnum:]] (_a-zA-Z0-9 ) “:

grep -c "^1\b" file # portable but not POSIX. grep -c "^1\>" file # portable but not POSIX. grep -wc "^1" file # portable but not POSIX. grep -c "^1\W" file # portable but not POSIX (not match only a `1`) (not underscore in BSD). 

Ez érvényes sorokat fogad el, amelyek 1-vel kezdődnek, és néhány írásjel követi őket.

Megjegyzések

  • Nincs mód arra, hogy a felhasználó által bemutatott sorok: 1 TGCAG… csak a 1 (vagyis: genomi adatok nélkül). De amúgy egy életképes megoldás is hozzáadódott.@St é phaneChazelas

Válasz

Úgy hangzik, mint te ezt szeretné:

$ grep "^1\b" a 1 TGCAG..... 1 TGCAG...... 

Ennek számlálási részéhez:

$ grep -c "^1\b" file 2 

Válasz

Ezek közül bármelyik kiválasztja azokat a sorokat, amelyek 1 az első oszlopban

awk "$1 == 1" grep -w "^1" 

Mindkettő kibővíthető, így nem is kell a wc a sorok számlálásához

awk "$1==1 { x++ } END { print x }" grep -cw "^1" 

Válasz

A grep használata:

grep -c "^1\s" file 

Ez illeszkedik minden 1-től kezdődő sorhoz, amelyet közvetlenül a szóköz követ, és megadja ezeknek a soroknak a számát (kiküszöbölve a wc -l)


$ cat input 79 TGCAG..... 1 TGCAG..... 1257 TGCAG..... 1 TGCAG...... $ grep -Ec "^1\s" input 2 

Válasz

Jó válaszok vannak itt, de feltételezve hogy nem minden sor végződik egy szóközben (például ha elmész t, amelyek valóban elérik a “=”) parancsot, használhatja ezt:

 grep -c "^1[^0-9]" file 

Alapjában véve minden olyan sorra egyezik, amelyik kezdõdik, majd nem számjegyű, beleértve a fehér helyet is. Kicsit bőbeszédűbb, de bolondbiztosabb is. (Bár érdemes megjegyezni, hogy itt nincs semmi a csak egy az egyben a null feltételért, ez nem érzékeny a sor végére.)

Hozzászólások

  • Ne feledje, hogy tiltja azokat a vonalakat, amelyek csak -ből állnak 1. Ha ez ' nem kívánatos, használja például a következőt: ^1($|[^0-9])

Válasz

Használhatja a sor alatt is:

$ awk -F" " "{if($1=="1") print $0}" <your file name> | wc -l 

A -F paraméter a mezőelválasztót szóközgé teszi . Ha az első mező értéke “1”, akkor annak sora kinyomtatódik.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük