Usando grep
e sed
para a) obtenha o número inteiro (!) após ICount
(com qualquer número de dígitos) eb) remova o especificador ICount
:
grep -o 'ICount = "[0-9]\{1,\}' | sed 's/.*"//'
Eu preciso encontrar a primeira ocorrência do atributo ICount
e seu valor deve ser retornado. Apenas o número do atributo. Como conseguir isso?
< FCount = "1" ICount = "0" Ccount= "1">
Por favor me ajude nisso.
Via awk
:
awk -F"ICount *= *\"" '{sub(/".*/,"",$2); print $2}'
Exemplo
% <<<'< FCount = "1" ICount="0" Ccount= "1">' | awk -F"ICount *= *\"" '{sub(/".*/,"",$2); print $2}'
0
ou também todos os outros atributos
% <<<'< FCount = "1" ICount="0" Ccount= "1">' | awk -F"Ccount *= *\"" '{sub(/".*/,"",$2); print $2}'
1
% <<<'< FCount = "1" ICount="0" Ccount= "1">' | awk -F"FCount *= *\"" '{sub(/".*/,"",$2); print $2}'
1
É melhor usar a ferramenta sozinho:
sed -n '/.*ICount\s*=\s*"\?/{s///;s/[^0-9].*//;p;q;}' file
mais clássico
sed -n 's/.*ICount\s*=\s*"\?\([0-9]\+\)"\s.*//p;/ICount\s*=/q' file
ou por grep com PCRE
grep -m1 -Po 'ICount\s*=\s*"?\K[0-9]+' file