Tôi đang tìm tập lệnh bash hoặc sed (tốt nhất là một lớp lót) mà tôi có thể chèn ký tự dòng mới sau một số ký tự cố định trong tệp văn bản lớn.Cách chèn ký tự dòng mới sau một số ký tự cố định trong một tệp
Trả lời
Làm thế nào về một cái gì đó như thế này? Thay đổi 20 là số ký tự trước khi xuống dòng, và temp.text là file để thay thế trong ..
sed -e "s/.\{20\}/&\n/g" < temp.txt
Không nếu tệp có ký tự '~' –
Điều này chèn một dòng mới sau * mỗi * 20 ký tự (trên mỗi dòng của bản gốc). Nếu bản gốc không chứa dòng mới và bạn muốn một dòng mới chỉ sau 20 ký tự đầu tiên, hãy bỏ "g" (toàn cục) ở cuối. Nếu bạn muốn điều này và bản gốc chứa các dòng mới, bạn sẽ phải sử dụng một giải pháp khác. –
Tôi đã có cùng một vấn đề nhưng trong OSX nó chèn một "n" chứ không phải là một ngắt dòng? Tôi đã kiểm tra các bài đăng khác có cùng vấn đề nhưng tôi không thể hiểu cách khắc phục? Có ai không? – JM88
nếu bạn có nghĩa là bạn muốn chèn xuống dòng của bạn sau khi một số nhân vật liên quan đến toàn bộ tập tin , ví dụ như sau khi nhân vật thứ 30 trong toàn bộ tập tin
gawk 'BEGIN{ FS=""; ch=30}
{
for(i=1;i<=NF;i++){
c+=1
if (c==ch){
print ""
c=0
}else{
printf $i
}
}
print ""
}' file
nếu bạn có nghĩa là chèn ở vị trí thứ cụ thể của nhân vật trong mỗi dòng ví dụ sau mỗi nhân vật thứ 5
gawk 'BEGIN{ FS=""; ch=5}
{
print substr($0,1,ch) "\n" substr($0,ch)
}' file
Nối một empt y dòng sau một dòng với chính xác 42 ký tự
sed -ie '/^.\{42\}$/a\
' huge_text_file
Cho N là biến trình bày đại diện cho số ký tự mà bạn muốn một dòng mới. Nếu bạn muốn tiếp tục đếm các dòng đếm:
perl -0xff -pe 's/(.{'$N'})/$1\n/sg' input
Nếu bạn muốn khởi động lại số đếm cho mỗi dòng, hãy bỏ qua đối số -0xff.
Điều này có thể làm việc cho bạn:
echo aaaaaaaaaaaaaaaaaaaax | sed 's/./&\n/20'
aaaaaaaaaaaaaaaaaaaa
x
nghĩa đen chỉ hoạt động cho dòng đầu tiên (ví dụ: chèn dòng mới sau 20 ký tự và sau đó thoát). Không thích hợp cho "tệp văn bản lớn". – michael
Đây là giải pháp POSIX:
awk '{gsub(/.{5}/,"&\n")}1' file
Hoặc:
fold -w5 file
Input:
banana strawberry grape
Đầu ra:
banan
a str
awber
ry gr
ape
Điều thú vị là giải pháp Awk hiệu quả hơn gấp.
Tôi đã nhìn thấy điều này đã thử hàng chục cách khác nhau, nhưng luôn luôn có trường hợp đặc biệt, sự khác biệt phiên bản, các vấn đề khác, hoặc giải pháp chỉ là không đồng đều. 'fold' là * chắc chắn * công cụ thích hợp cho việc này. +1 – laindir
'fold' phải là câu trả lời đúng. 'man fold' cho' quấn từng dòng đầu vào để vừa với chiều rộng được chỉ định'. Nó trả lời câu hỏi một cách hoàn hảo! – dcousens
tiếc là 'fold' không xử lý bất kỳ thứ gì ngoài các tệp ascii đơn giản - chỉ cần thử kiểm tra trên bất kỳ tệp unicode nào (ví dụ: với dấu ngoặc đơn đặc biệt, v.v.), nó tạo ra nhiều thứ. Tuy nhiên, 'awk..gsub' không hoạt động. – michael
- 1. Phát hiện một ký tự dòng mới
- 2. Đọc một ký tự tệp theo ký tự trong C
- 3. Ký tự dòng mới là gì - '\ n'
- 4. Thêm ký tự Dòng mới trong localizable.strings
- 5. Cách chèn ký tự vào số NSString
- 6. fscanf và ký tự dòng mới
- 7. Làm cách nào để chèn ký tự sau mỗi n ký tự trong javascript?
- 8. Tự động ngắt nhận xét sau một số lượng ký tự nhất định
- 9. grep giới hạn ký tự - một dòng
- 10. Truy vấn tham số thất bại khi chèn một số ký tự Unicode nhất định
- 11. Cách cắt mọi thứ sau một số ký tự nhất định trong sql
- 12. Làm cách nào để chèn khoảng trắng sau một số ký tự nhất định trong chuỗi bằng python?
- 13. Thêm một số ký tự ở đầu mỗi dòng
- 14. Cách đọc từ một tệp văn bản, ký tự theo ký tự trong C++
- 15. Làm cách nào để chèn và xóa một số ký tự ở giữa tệp?
- 16. Tránh một bộ ký tự trong thẻ meta và chỉ định một bộ ký tự
- 17. Làm thế nào để thay thế một ký tự bằng một dòng mới trong Emacs?
- 18. thay thế ký tự dòng mới trong biến bash?
- 19. Ruby: Chèn dấu cách mỗi số ký tự X
- 20. cách chèn ký tự dòng mới trong chuỗi vào PrintStream rồi sử dụng máy quét để đọc lại tệp
- 21. regex - nhận số sau chuỗi ký tự nhất định
- 22. Trong Eclipse, làm thế nào để thay thế một ký tự bằng một dòng mới?
- 23. CSS Vị trí cố định với Ký tự tự động
- 24. Tạo một dòng ký tự dài bọc trong HTML
- 25. Làm thế nào để xóa tất cả các ký tự sau một ký tự trong chuỗi?
- 26. Làm cách nào để xóa mọi thứ sau một ký tự nhất định trong chuỗi?
- 27. xuất một bảng trong MySQL với các cột có ký tự dòng mới
- 28. Thay thế một ký tự bằng một ký tự khác trong một chuỗi trong android?
- 29. Thay thế các ký tự trong một tệp
- 30. Cách xác định chuỗi ký tự bằng dòng lệnh gcc?
Ngắt của http://stackoverflow.com/questions/525592/find-and-replace-inside-a-text-file-from-a-bash-command trong số rất nhiều, rất nhiều người khác –
Tôi không đồng ý với nhận xét hai mặt ở đây, Neil: đây không phải là tìm kiếm đơn giản và thay thế như câu hỏi trong liên kết của bạn .. – Kristian