Cách chèn dấu gạch ngang vào một chuỗi bằng cách sử dụng sed (ví dụ: 201107
đến 2011-07
)?Chèn ký tự tại một vị trí cụ thể bằng cách sử dụng sed
Trả lời
Sau đây sẽ chỉ thực hiện thay thế trên các chuỗi gồm bốn chữ số, theo sau là các chuỗi gồm hai chữ số.
$ echo '201107' | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)/\1-\2/'
2011-07
Sed regex là một chút vụng về, vì sự thiếu \d
, và sự cần thiết để thoát khỏi dấu ngoặc đơn và dấu ngoặc (nhưng không phải giá treo đồ). Giải pháp của tôi nên là 's/(\d{4})(\d{2})/\1-\2/'
nếu không cho những đặc thù này.
echo "201107" | sed 's/201107/2011-07/'
Nên hoạt động. Nhưng chỉ đùa thôi, đây là giải pháp tổng quát hơn:
echo "201107" | sed 's/^\(.\{4\}\)/\1-/'
Điều này sẽ chèn -
sau bốn ký tự đầu tiên.
HTH
Tôi biết điều này là diggin lên một con khủng long khổng lồ, nhưng nếu bạn muốn loại bỏ 6 số không tailing
echo '20110715000000' | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{6\}\)/\1-\2-\3/'
Đối với phiên bản sed không chắc chắn (ít nhất là GNU tôi sed 4.2.2) , bạn chỉ có thể làm:
echo "201107" | sed 's/./&-/4'
/4
-> thay thế cho sự xuất hiện lần thứ 4 (các mô hình tìm kiếm .
)
&
-> trở lại tham chiếu đến toàn bộ trận đấu
Tôi học được điều này từ bài khác: https://unix.stackexchange.com/questions/259718/sed-insert-character-at-specific-positions
- 1. Chèn vào danh sách tại một vị trí cụ thể bằng cách sử dụng ống kính
- 2. Làm thế nào để chèn một ký tự tại chỉ mục cụ thể của chuỗi bằng cách sử dụng C#?
- 3. thượng hạ hợp cụ thể bằng cách sử dụng sed
- 4. Chèn một hàng tại một vị trí cụ thể trong một mảng 2d có dạng gumpy?
- 5. Chèn văn bản tại vị trí con trỏ tới CKEditor bằng cách sử dụng jQuery
- 6. Java Thay thế ký tự tại vị trí cụ thể của chuỗi?
- 7. Làm thế nào để ghép một mảng để chèn mảng tại vị trí cụ thể?
- 8. Sử dụng jQuery để tìm một phần tử tại một vị trí cụ thể?
- 9. Chèn nút XML tại vị trí cụ thể của tài liệu hiện có
- 10. chèn một phần tử vào một vị trí cụ thể của một vector
- 11. Làm thế nào để chèn một 'Chuỗi' trong một 'JTextField' đến một vị trí cụ thể?
- 12. Cách di chuyển hình dạng xoay đến một vị trí cụ thể trong excel 2010 bằng cách sử dụng vba
- 13. lxml: chèn thẻ tại một vị trí nhất định
- 14. Tìm các dòng có độ dài lớn hơn 120 ký tự bằng cách sử dụng sed
- 15. sử dụng SED với ký tự đại diện
- 16. Vẽ hai ô vuông tại một vị trí x bằng cách sử dụng R và ggplot2
- 17. Cách chèn ký tự dòng mới sau một số ký tự cố định trong một tệp
- 18. Chèn một mảng byte vào một mảng byte khác tại một vị trí cụ thể với C#
- 19. nginx khớp từ cụ thể tại vị trí
- 20. Viết chuỗi tại cùng một vị trí bằng cách sử dụng Console.Write trong C# 2.0
- 21. Vị trí của "đầu" trong một ký tự Arrow-Unicode
- 22. Ghi đè dữ liệu ghi đè C++ trong một tệp tại một vị trí cụ thể
- 23. Cuộn UITableView đến vị trí cụ thể
- 24. Sử dụng sed giữa các dòng cụ thể chỉ
- 25. Thêm một dòng mới tại một vị trí cụ thể trong một tệp văn bản.
- 26. Cách nối văn bản trong TextArea tại vị trí con trỏ bằng cách sử dụng Javascript
- 27. làm thế nào để chèn một dòng bằng cách sử dụng sed trước một mẫu và sau một số dòng?
- 28. Vị trí trong Vector bằng cách sử dụng STL
- 29. Chèn chuỗi tại vị trí được chỉ định
- 30. cách lật bit tại vị trí cụ thể bằng một số nguyên theo bất kỳ ngôn ngữ nào