megjegyzések
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 a1
(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.
-
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.