Je možné použít wc k počítání znaků každého řádku místo celkového počtu znaků?
např.
echo -e foo\nbar\nbazz | grep -i ba
vrátí:
bar
bazz
Proč se tedy echo -e foo\nbar\nbazz | grep ba | wc -m
vrátit seznam délek těchto slov? (3 a 4)
Návrhy?
P.S.:proč se posuny řádku počítají pomocí wc -m
? wc -l
počítá nové řádky, tak proč by měl wc -m
počítat je také?
Přijatá odpověď:
wc
počítá přes celý soubor;
Můžete použít awk
zpracovat řádek po řádku (nepočítaje oddělovač řádku):
echo -e "foonbarnbazzn" | grep ba | awk '{print length}'
nebo jako awk
je většinou nadmnožinou grep
:
echo -e "foonbarnbazzn" | awk '/ba/ {print length}'
(všimněte si, že některé awk
implementace hlásí počet bajtů (jako wc -c
) na rozdíl od počtu znaků (např. wc -m
) a ostatní budou kromě znaků počítat bajty, které netvoří součást platných znaků (zatímco wc -m
by je ve většině implementací ignoroval))