using sed -
echo "abcd 1234 -type 53 efgh 5678" |sed -r 's/^.*-type\s+([0-9]+).*$//'
53
substitua a linha usada aqui por $ line e atribua a uma variável
Eu tenho um script simples que lê linhas de um arquivo de texto da seguinte forma:
#!/bin/bash
FILE=$1
while read line; do
done < $FILE
Eu gostaria de combinar texto entre a string "-type" e um espaço, então na minha linha eu tenho:
random text -type 53 random text
Eu só quero extrair "53" e atribuí-lo à variável type_number. Quais dessas ferramentas cortar, sed, grep ou awk seriam apropriadas para essa tarefa?
#!/bin/bash
FILE=$1
while read line; do
type_number='echo $line |awk '{for(i=1;i<=NF;i++){if($i=="-type")print $(i+1)}}''
#here you can use your $type_number
done < $FILE
#!/bin/bash
FILE=$1
while read line; do
number=$(echo "${line}" | awk 'gsub(" *","")$0~/type/{getline;print;exit}' RS=" ")
echo "${number}"
done < ${FILE}