Egy fájl tartalmának átfutása a Bashben
Hogyan iterálhatom végig egy szöveges fájl minden egyes sorát a Bash segítségével?
Ezzel a szkripttel:
echo "Start!"
for p in (peptides.txt)
do
echo "${p}"
done
Ezt a kimenetet kapom a képernyőn:
Start!
./runPep.sh: line 3: syntax error near unexpected token `('
./runPep.sh: line 3: `for p in (peptides.txt)'
(Később valami bonyolultabbat akarok csinálni a $p
-vel, mint csak a képernyőre való kimenet.)
A SHELL környezeti változó (az env-ből):
SHELL=/bin/bash
/bin/bash --version
kimenet:
GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
cat /proc/verzió
kimenet: `}545454}..:
Linux version 2.6.18.2-34-default (geeko@buildhost) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #1 SMP Mon Nov 27 11:46:27 UTC 2006
A peptides.txt fájl a következőket tartalmazza:
RKEKNVQ
IPKKLLQK
QYFHQLEKMNVK
IPKKLLQK
GDLSTALEVAIDCYEK
QYFHQLEKMNVKIPENIYR
RKEKNVQ
VLAKHGKLQDAIN
ILGFMK
LEDVALQILL
1228
3
Ennek egyik módja a következő:
és az egysoros változat:
Ezek az opciók kihagyják a fájl utolsó sorát, ha nincs utána sorbetét.
Ezt a következőkkel elkerülheti:
1a. lehetőség: While ciklus: Egyszerre csak egy sor: Bemeneti átirányítás
1b. lehetőség: While ciklus: Egyszerre csak egy sor: Megnyitjuk a fájlt, olvasunk egy fájlleíróból (ebben az esetben a 4. számú fájlleíróból).