Sper că cineva îmi poate explica ce se întâmplă în această situație și cum să o rezolv.
Încerc un lucru simplu: pentru a citi fiecare rând dintr-un fișier text cu buclă.
Acesta este conținutul fișierului text la care lucrez:
aaaa aaaa a aa
bb bbbbb bbbbb b
cccccccc c c c
NOTĂ: Acesta este un fișier simplu, doar pentru a testa conceptul. Fișierul text principal pe care îl lucrez are aproximativ 140 MB, cu un aspect pozițional pentru fiecare câmp.
Acesta este conținutul meu de script bash:
FILE=./text.txt
awk '{ print }' $FIȘIER | în timp ce citiți RÂND; do
echo $ROW
Terminat
Primesc fiecare rând din fișier, dar acesta este rezultatul:
aaaa aaaa a aa
bb bbbbb bbbbb b
cccccccc c c c
După cum puteți vedea, spațiile albe suplimentare sunt eliminate din ieșire.
Încerc să testez acest script folosind awk
, dar am încercat deja cu pisică
și stdout
si a avut acelasi rezultat:
FILE=./text.txt
# pisică
pisica $FILE | în timp ce citiți RÂND; do
echo $ROW
Terminat
##########
# stdout
în timp ce citiți RÂND; do
echo $ROW
terminat < $FILE
Am incercat si eu sa folosesc pentru buclă
:
pentru RÂND în $(awk '{ print }' $FILE); do
echo $ROW
ecou „---”
Terminat
Dar acesta a fost rezultatul, conținutul fiecărui rând a fost împărțit de spațiile albe:
aaaa
---
aaaa
---
A
---
aa
---
bb
---
bbbbb
---
bbbbb
---
b
---
cccccccc
---
c
---
c
---
c
---
După cum am menționat anterior, fișierul text principal are câmpuri poziționale, de aceea am nevoie de toate caracterele rând, chiar dacă sunt spații albe suplimentare.
Mă întrebam dacă cineva îmi poate explica de ce au fost eliminate spațiile albe suplimentare și cum să imprimați/lucrați conținutul întregului rând (cu orice spațiu alb suplimentar)?