Huzzah ขอบคุณคำตอบนี้และอื่น ๆ ตอนนี้มีวิธีการที่มีประโยชน์ดังต่อไปนี้:
- ทำงานได้ใน Excel เช่นเดียวกับตัวเลข
- สามารถเป็นแบบอัตโนมัติได้
- มองไม่เห็นเป็นตัวเลข
- สร้างไฟล์ CSV ที่ไม่มีผลกระทบจากการนำเข้าเพื่อส่งออก
เคล็ดลับคือการไม่นำหน้าแต่ละเขตที่มีเครื่องหมายวรรคตอนหรือห่อในราคาคู่ แต่คำนำหน้าด้วยและต่อท้ายด้วย="
"
ในการนำเข้าเบอร์ถือว่าเนื้อหาของฟิลด์เป็นสตริงและในการส่งออกมันจะลดลงคำนำหน้าและคำต่อท้าย
ต่อไปนี้เป็นสายการบินหนึ่งที่สะดวกสบายที่ประมวลผลไฟล์ล่วงหน้าmy.csv
:
sed 's/^/="/;s/,/",="/g;s/$/"/' my.csv | sed 's/=""//g' > tmp.csv
เป็นครั้งแรกที่sed
ทำให้="
ในช่วงเริ่มต้นของแต่ละบรรทัด, การเปลี่ยนแปลงในแต่ละจุลภาคไปแล้วปิดให้บริการแต่ละบรรทัด",="
"
ครั้งที่สองsed
จะดึงฟิลด์ที่ว่างออกเพราะตัวเลขทำให้เกิดช่องว่าง ในที่สุดก็เขียนไฟล์ที่เรียกtmp.csv
ว่าสามารถคลิกหรือส่งผ่านไปopen
ยังนำเข้าสู่เบอร์
ในทางปฏิบัติสิ่งนี้จะทำให้ฟิลด์ใด ๆ คุณอาจจะดีกว่าเพียงการตัดฟิลด์เหล่านั้นที่ขึ้นต้นด้วยตัวเลข แต่คุณต้องระวังการเริ่มต้นและสิ้นสุดของแต่ละบรรทัดและนิพจน์ทั่วไปของคุณ สิ่งนี้จะทำใน macOS:
sed -E 's/(^|,)([[:digit:]][^,]*)($|,)/\1="\2"\3/g'
นั่นคือตรงกับจุดเริ่มต้นของบรรทัดหรือเครื่องหมายจุลภาคตัวเลขแล้วจำนวนอักขระใด ๆ ที่ไม่ใช่เครื่องหมายจุลภาคแล้วจุดสิ้นสุดของบรรทัดหรือเครื่องหมายจุลภาคอื่น แทนที่ด้วยจุดเริ่มต้นและจุดสิ้นสุดเหมือนกัน แต่มีบิตกลางห่อและ="
"