ฉันหวังว่าจะมีคนอธิบายให้ฉันฟังได้ว่าเกิดอะไรขึ้นในสถานการณ์นี้และจะแก้ไขได้อย่างไร
ฉันกำลังลองสิ่งง่ายๆ: เพื่ออ่านแต่ละแถวจากไฟล์ข้อความด้วยการวนซ้ำ.
นี่คือเนื้อหาไฟล์ข้อความที่ฉันกำลังดำเนินการ:
อ๊าาาาาาาาาาาาาา
บีบีบีบีบีบีบีบีบี
cccccccc ซีซีซี
หมายเหตุ: ไฟล์นี้เป็นไฟล์ง่ายๆ เพื่อทดสอบแนวคิด ไฟล์ข้อความหลักที่ฉันกำลังทำงานมีขนาดประมาณ 140MB โดยมีเค้าโครงตำแหน่งสำหรับแต่ละฟิลด์
นี่คือเนื้อหาสคริปต์ทุบตีของฉัน:
FILE=./text.txt
awk '{ พิมพ์ }' $FILE | ในขณะที่อ่าน ROW; ทำ
เสียงสะท้อน $ROW
เสร็จแล้ว
ฉันได้รับแต่ละแถวจากไฟล์ แต่นี่คือผลลัพธ์:
อ๊าาาาาาาาาาาาาา
บีบีบีบีบีบีบีบีบี
cccccccc ซีซีซี
อย่างที่คุณเห็น ช่องว่างสีขาวส่วนเกินจะถูกลบออกจากเอาต์พุต
ฉันพยายามทดสอบสคริปต์นี้โดยใช้ อึดอัด
แต่ฉันได้ลองแล้วกับ แมว
และ แย่
และได้ผลเหมือนกันคือ
FILE=./text.txt
# แมว
แมว $FILE | ในขณะที่อ่าน ROW; ทำ
เสียงสะท้อน $ROW
เสร็จแล้ว
##########
#สเตตัส
ในขณะที่อ่าน ROW; ทำ
เสียงสะท้อน $ROW
เสร็จแล้ว < $FILE
ฉันยังลองใช้ สำหรับลูป
:
สำหรับ ROW ใน $(awk '{ print }' $FILE); ทำ
เสียงสะท้อน $ROW
เสียงสะท้อน "---"
เสร็จแล้ว
แต่นี่คือผลลัพธ์ เนื้อหาแต่ละแถวถูกแบ่งด้วยช่องว่าง:
อ่าาา
---
อ่าาา
---
ก
---
อ่า
---
BB
---
บีบีบี
---
บีบีบี
---
ข
---
cccccccc
---
ค
---
ค
---
ค
---
ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ ไฟล์ข้อความหลักมีฟิลด์ระบุตำแหน่ง นั่นคือเหตุผลที่ฉันต้องการอักขระแถวทั้งหมด แม้ว่าจะเป็นช่องว่างเพิ่มเติมก็ตาม
ฉันสงสัยว่ามีใครสามารถอธิบายให้ฉันฟังได้หรือไม่ว่าเหตุใดช่องว่างสีขาวพิเศษจึงถูกลบออก และจะพิมพ์/ทำงานเนื้อหาเต็มแถวได้อย่างไร (โดยมีพื้นที่สีขาวเพิ่มเติม)