cat myFile.txt | o script abaixo:
#!/bin/bash
while read lineOfText
do
echo $lineOfText | any of the approaches from http://www.unix.com/shell-programming-scripting/38450-split-string-using-separetor.html
done
Eu tenho um arquivo com linhas como:
0 6 973 1346 2318 456 431 93 58 1 1 0 0 0 0
Eu quero extrair o primeiro, quarto e quinto número e salvá-los em variáveis no bash para uso posterior. No exemplo acima, os valores desejados são '0', '1346' e '2318'.
Estou pensando em usar sed, mas não sei como. Quaisquer outras formas também são bem vindas.
ps. Obrigado pela resposta, segue o que estou usando agora:
for fn in $(cat filelist); do
more $fn | \
while read str; do
echo $str
var=$(echo $str | awk -F" " '{print $1,$2,$3,$4,$5}')
set -- $var
echo $1
echo $4
echo $5
done
done
Funciona, sim ~~
while read -r fn
while read -r first second third fourth fifth remainder
do
echo "$first"
echo "$fourth"
echo "$fifth"
done < "$fn"
done < filelist
Se eu puder oferecer uma sugestão, você pode simplificar seu script assim:
for fn in $(< filelist); do #Replacement for $(cat filelist)
while read str; do
echo $str
# No need for set --, unless you *really* want the values to be
# placed in $1, $4, and $5
read var1 var4 var5 <<< "$( echo $str | awk '{print $1,$4,$5}' )"
echo $var1
echo $var4
echo $var5
done < $fn # Replaces more $fn |
done