Dělám svn status --show-updates
a pak chci buď
- O1:
ignorovat (nezobrazovat) řádky, které začínají?
- Q2:
zobrazí pouze řádky, které začínají*
Všimněte si, že před výskytem * je několik mezer. To znamená, že*
není první znak na řádku.
Jak to mohu udělat?
Přijatá odpověď:
Tyto podmínky můžete vyjádřit pomocí regulárních výrazů a použít grep
filtrovat výsledky na základě nich.
První je ^?
. Karát je speciální znak, který představuje začátek řádku; takže výraz odpovídá začátku řádku, za kterým bezprostředně následuje ?
.
Druhý je ^ *\*
. *
je speciální znak, který kvalifikuje předchozí znak – to znamená, že předchozí znak se může objevit nula nebo vícekrát. Od *
je speciální znak, ten, který hledáte, musí být escapován, proto \*
. Tento výraz tedy bude odpovídat začátku řádku, za kterým bude následovat nula nebo více mezer a za nimi hvězdička.
Pro první podmínku použijte -v
možnost pro grep
negovat výsledky.
Takže konečně,
svn status --show-updates | grep -v '^?'
nebo
svn status --show-updates | grep '^ *\*'
Regulární výrazy jsou velmi výkonné, takže je může používat mnoho unixových nástrojů. Velmi stojí za to se je naučit. Na regular-expressions.info je skvělý návod.