Score:0

จะสร้างไฟล์ที่มีโครงสร้างดังนี้ได้อย่างไร?

ธง fj

พิจารณาแถวต่อไปนี้:

ฉัน -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0
ยู จีอีวี เอ็มเอ็ม
V -1 0 0 0 0 0 0 1 0
ป 1 535 0.0000000000000000e+00 0.0000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 0

โดยที่ i อยู่ระหว่าง 0 ถึง 100,000

ฉันต้องการทำให้ไฟล์ประกอบด้วยแถวดังกล่าว เช่น

จ 1 -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0
ยู จีอีวี เอ็มเอ็ม
V -1 0 0 0 0 0 0 1 0
ป 1 535 0.0000000000000000e+00 0.0000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 0
จ 1 -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0
ยู จีอีวี เอ็มเอ็ม
V -1 0 0 0 0 0 0 1 0
ป 1 535 0.0000000000000000e+00 0.0000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 0
จ 2 -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0
    ยู จีอีวี เอ็มเอ็ม
    V -1 0 0 0 0 0 0 1 0
    ป 1 535 0.0000000000000000e+00 0.0000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 0
...

คุณช่วยบอกฉันได้ไหมว่าฉันจะทำอย่างไร

วิธีการของฉันเริ่มจากการสร้างไฟล์สคริปต์ที่ฉันพิมพ์

ไฟล์สัมผัส. txt
สำหรับฉันใน {0.. 100,000 }; 
ทำ echo 'E i -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0' >> file.txt;
echo 'U GEV MM' >> file.txt
echo '-1 0 0 0 0 0 0 1 0' >> file.txt
echo 'P 1 535 0.0000000000000000e+00 0.00000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 t 0x 0x ไฟล์ >>
เสร็จแล้ว

แต่เห็นได้ชัดว่ามีบางอย่างผิดปกติ เนื่องจากฉันยังคงเป็น i ในไฟล์ที่สร้างขึ้น และจำนวนสตริงน้อยกว่าที่คาดไว้มาก (4*100000)

Score:3
ธง cn

คุณต้องการรักษาจำนวนเหตุการณ์ภายในลูปให้น้อยที่สุด (การเปิดและปิด file.txt 100K x4 จะทำให้ระบบของคุณเครียดโดยไม่มีเหตุผลที่ดี)

#!/bin/bash

ประกาศ -a ก
ฉัน=0
ในขณะที่ ((i++ < 100,000)); ทำ
    a+=("E $i -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0" 'U GEV MM' '-1 0 0 0 0 0 0 1 0' ' ป 1 535 0.0000000000000000e+00 0.0000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 0 0')
เสร็จแล้ว
printf '%s\n%s\n%s\n' "${a[@]}" > file.txt
fj flag
ขอบคุณ! อย่างไรก็ตาม ฉันยังคงอยู่ในขณะที่ฉันอยู่ในสตริง
bac0n avatar
cn flag
ฉันไม่ติดตาม?
fj flag
ผลลัพธ์ของฉันคือ ฉัน -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0 ยู จีอีวี เอ็มเอ็ม -1 0 0 0 0 0 0 1 0 ป 1 535 0.0000000000000000e+00 0.0000000000000000e+00 1.3330000000000000e+00 1.036606429653994e+01 1.02800000000000000e+01 0 0 ฉัน -1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 0 0 1 0 0 0 0
fj flag
นั่นคือ i ไม่ถูกแทนที่ด้วยจำนวนเต็ม
bac0n avatar
cn flag
ไม่เห็นมัน `"'E $i -1 -1.0000000000000000e+00..."` นี่เป็นเพียง `i` เท่านั้น
bac0n avatar
cn flag
สิ่งนี้จะเปลี่ยนจาก 0 ถึง 999999 คุณสามารถทำ `i=1` และใช้ `

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา