Tôi đang cố gắng chuyển đổi một tệp văn bản thành một bảng tính tách tab. Tệp văn bản của tôi là một cái gì đó như thế này:
Dog
Cat
Fish
Lizard
Wolf
Lion
Shark
Gecko
Coyote
Puma
Eel
Iguana
Với các chức năng tìm kiếm và thay thế tiêu chuẩn trong Gedit hoặc LibreOffice, thật dễ dàng để thay thế cuối dòng bằng một tab. Nhưng nếu tôi chỉ trao đổi trả lại vận chuyển cho các tab, tôi sẽ nhận được điều này:
Dog Cat Fish Lizard Wolf Lion Shark Gecko Coyote Puma Eel Iguana
Nhưng những gì tôi cần làm là làm cho nó trông như thế này:
Dog Cat Fish Lizard
Wolf Lion Shark Gecko
Coyote Puma Eel Iguana
Vì vậy, tôi có thể trao đổi mọi đầu của ký tự dòng cho một tab ngoại trừ mỗi dòng thứ tư không?
Tôi không biết liệu loại lặp có điều kiện đó có thể được thực hiện bằng các biểu thức chính quy trong một chương trình như Gedit hoặc LibreOffice không, vì vậy có lẽ đây cần phải là một loại chức năng dòng lệnh? Tôi thậm chí không rõ công cụ tốt nhất để bắt đầu là gì.
Cập nhật:
Tôi đã thử các lệnh sau:
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
Nhưng khi tôi cố gắng mở tsv
tệp kết quả trong LibreOffice, các cột không hoàn toàn đúng. Tôi không chắc điều này có nghĩa là tôi không thực hiện đúng các lệnh trên hay nếu tôi đang làm gì đó sai trong chức năng nhập LibreScript:
Chỉ để tham khảo, kết quả mong muốn sẽ như thế này:
dos2unix
vàunix2dos
.