iirc :
cat filename.txt | awk '{ print $2 $4 }'
nebo, jak je uvedeno v komentářích:
awk '{ print $2 $4 }' filename.txt
Můžete použít cut
příkaz:
cut -d' ' -f3,5 < datafile.txt
tiskne
1657 19.6117
1410 18.8302
3078 18.6695
2434 14.0508
3129 13.5495
-d' '
- použijtespace
jako oddělovač-f3,5
- vzít a vytisknout 3. a 5. sloupec
cut
je mnohem rychlejší pro velké soubory jako čistě shellové řešení. Pokud je váš soubor oddělen několika mezerami, můžete je nejprve odstranit, například:
sed 's/[\t ][\t ]*/ /g' < datafile.txt | cut -d' ' -f3,5
kde (gnu) sed nahradí jakýkoli tab
nebo space
znaků s jedním space
.
Pro variantu - zde je také řešení v perlu:
perl -lanE 'say "$F[2] $F[4]"' < datafile.txt
Pro úplnost:
while read -r _ _ one _ two _; do
echo "$one $two"
done < file.txt
Místo _
libovolnou proměnnou (například junk
) lze také použít. Smyslem je pouze extrahovat sloupce.
Demo:
$ while read -r _ _ one _ two _; do echo "$one $two"; done < /tmp/file.txt
1657 19.6117
1410 18.8302
3078 18.6695
2434 14.0508
3129 13.5495
Převést glyfy TrueType na obrázek PNG?
vypočítat celkový použitý prostor na disku soubory staršími než 180 dní pomocí funkce find