ฉันพยายามแปลงไฟล์ข้อความเป็นสเปรดชีตที่คั่นด้วยแท็บ ไฟล์ข้อความของฉันเป็นดังนี้:
Dog
Cat
Fish
Lizard
Wolf
Lion
Shark
Gecko
Coyote
Puma
Eel
Iguana
ด้วยการค้นหาและแทนที่ฟังก์ชั่นมาตรฐานใน Gedit หรือ LibreOffice มันง่ายที่จะแทนที่ส่วนท้ายของบรรทัดด้วยแท็บ แต่ถ้าฉันเพียงแค่สลับ carriage return สำหรับแท็บฉันจะได้รับสิ่งนี้:
Dog Cat Fish Lizard Wolf Lion Shark Gecko Coyote Puma Eel Iguana
แต่สิ่งที่ฉันต้องทำคือให้มันเป็นแบบนี้:
Dog Cat Fish Lizard
Wolf Lion Shark Gecko
Coyote Puma Eel Iguana
ดังนั้นฉันสามารถสลับอักขระปลายบรรทัดสำหรับแท็บได้ยกเว้นทุกบรรทัดที่สี่หรือไม่
ฉันไม่ทราบว่าการวนซ้ำแบบมีเงื่อนไขสามารถทำได้ด้วยนิพจน์ทั่วไปภายในโปรแกรมเช่น Gedit หรือ LibreOffice ดังนั้นอาจจำเป็นต้องมีฟังก์ชันบรรทัดคำสั่งบางอย่างหรือไม่ ฉันยังไม่ชัดเจนว่าเครื่องมือที่ดีที่สุดในการเริ่มต้นคืออะไร
ปรับปรุง:
ฉันลองคำสั่งต่อไปนี้:
sed 'N;N;N;s/\n/\t/g' file > file.tsv
paste - - - - < file > file.tsv
pr -aT -s$'\t' -4 file > file.tsv
xargs -d '\n' -n4 < inputfile.txt
แต่เมื่อฉันพยายามเปิดtsv
ไฟล์ผลลัพธ์ใน LibreOffice คอลัมน์นั้นค่อนข้างไม่ถูกต้อง ฉันไม่แน่ใจว่าสิ่งนี้หมายความว่าฉันไม่ได้ดำเนินการคำสั่งด้านบนอย่างถูกต้องหรือถ้าฉันทำอะไรผิดในฟังก์ชันการนำเข้า LibreOffice:
เพื่อการอ้างอิงผลลัพธ์ที่ต้องการควรมีลักษณะเช่นนี้:
dos2unix
unix2dos