Jako v příkladu se snažím získat čísla řádků, které obsahují vzor. Můj vzor obsahuje lomítka, takže jsem chtěl přidat vlastní oddělovač.
Tento jednoduchý funguje:
sed -n '/file/=' temp.txt
Funguje také použití oddělovače pro nahrazení řetězce:
sed 's|file|gile|' temp.txt
ale když chci přidat oddělovač do prvního příkladu, nedělá to:
sed -n '|file /etc|=' temp.txt
Vím, že mohu uniknout lomítkům, ale raději bych přidal vlastní oddělovač. Máte nápad, jak opravit můj příkaz?
Přijatá odpověď:
Stéphane vám dal sed
řešení:
sed -n '|file /etc|=' file
Pokud jste ochotni používat jiné nástroje, můžete to udělat také
grep -n 'file /etc' file
To také vytiskne samotný řádek, abyste získali pouze číslo řádku, zkuste:
grep -n 'file /etc' file | cut -d: -f 1
Nebo můžete použít perl
:
perl -lne 'm|file /etc| && print $.' file
Nebo awk
:
awk '$0 ~ "file /etc" {print NR}'
Jaký je rozdíl mezi získáním výstupu příkazu pomocí `command` a $(command) v Shell?
Nakonfigurovat Toggleshowdesktop v Openbox tak, aby fungoval pouze na zadané vrstvě?