Tôi muốn để lập bản đồ, ví dụ, từ 4 đến 'tháng tư' (3 ký tự viết tắt của tên của tháng)Bash: Làm thế nào để chuyển đổi một số thành một chuỗi tháng?
Trả lời
Hãy thử điều này:
MONTHS=(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
echo ${MONTHS[3]}
Hoặc theo gợi ý @ Potong của (có một sự tương ứng 1-1 giữa số tháng và chỉ số)
MONTHS=(ZERO Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
echo ${MONTHS[4]}
#! /bin/bash
case $1 in
[1-9]|1[0-2]) date -d "$1/01" +%b ;;
*) ; exit 1
esac
Tại sao downvote? Có gì sai với câu trả lời này? –
Tôi đồng ý, tôi không biết có gì sai với cách tiếp cận này. –
Tôi tự hỏi là tốt. –
một lo kết quả nhạy cảm với cale có thể đạt được như thế này; đặt số vào vị trí tháng của ngày, được chuyển thành ngày được xuất cho đến ngày và chọn một năm và ngày tùy ý (tránh xa 50 năm và tương lai xa và tránh ngày lớn hơn 20). Nó đã không phải là năm thực tế:
i=10; date -d 2012/${i}/01 +%b
Ở đây, với locale de_DE, tôi nhận được kết quả:
Okt
(Tôi đã không chọn tháng Tư, bởi vì nó là mặc định cho ngày để lấy tháng hiện tại, vì vậy với một định dạng d -date xấu, bạn nhận được tháng Tư, ngay cả khi tôi = 10. Tôi biết điều đó, bởi vì tôi đã trải nghiệm nó. Và hơn nữa: Tên tiếng Đức cho tháng Tư là tháng Tư, vì vậy nó sẽ không ' t phục vụ tốt làm ví dụ cho các chi tiết tốt hơn, chỉ theo sau bây giờ :)
i=10; LC_ALL=C date -d 2012/${i}/01 +%b
điều này cho thấy tháng theo phong cách tiêu chuẩn quốc tế.
Lợi thế của giải pháp là, nó sẽ tồn tại các cuộc cách mạng, đổi tên các tháng thành Brumaire, Obamer hoặc quốc tế hóa (Mär, Mai, Okt, Dez bằng tiếng Đức, tức là).
- 1. Trong kịch bản shell bash làm thế nào để chuyển đổi một chuỗi thành một số
- 2. Làm thế nào để chuyển đổi một chuỗi các số thành một dãy số?
- 3. Làm thế nào để chuyển đổi một số nguyên thành một chuỗi một cách dễ dàng?
- 4. Làm thế nào để chuyển đổi một chuỗi thành CharSequence?
- 5. Làm thế nào để chuyển đổi số tháng thành tên tháng đầy đủ trong oracle?
- 6. Làm thế nào để chuyển đổi một chuỗi thành một hằng số trong Ruby?
- 7. Matlab, làm thế nào để chuyển đổi một chuỗi các số nguyên thành một vectơ?
- 8. Làm cách nào để chuyển đổi tên tháng thành số nguyên tháng trong Ruby?
- 9. Làm thế nào để chuyển đổi một chuỗi số clojure thành các số nguyên riêng biệt?
- 10. Làm thế nào để chuyển đổi chuỗi số thành số nguyên trong một danh sách?
- 11. Làm thế nào để chuyển đổi một chuỗi số 18 chữ số thành BigInteger?
- 12. Làm thế nào để chuyển đổi một chuỗi thành một ngày bằng cách sử dụng SimpleDateFormat?
- 13. Làm thế nào để chuyển đổi một chuỗi đại diện của một số thành một số trong coldfusion?
- 14. Postscript: làm thế nào để chuyển đổi một số nguyên thành chuỗi?
- 15. Làm thế nào để chuyển đổi chuỗi này thành một mảng các số nguyên?
- 16. Làm thế nào để chuyển đổi một chuỗi hoặc số nguyên thành nhị phân trong Ruby?
- 17. Làm thế nào để chuyển đổi một giá trị số nguyên thành chuỗi?
- 18. Chuyển đổi tháng mmm thành số
- 19. Làm thế nào để chuyển đổi một chuỗi (có số không đứng đầu hoặc không) thành một số nguyên?
- 20. Làm thế nào để chuyển đổi một số ngày tháng nối tiếp Excel sang .NET DateTime?
- 21. Làm thế nào để chuyển đổi một chuỗi nhị phân thành một giá trị float?
- 22. Làm thế nào để chuyển đổi một vector <int> thành một chuỗi?
- 23. Làm thế nào để chuyển đổi một chuỗi thành một hàm trong Clojure?
- 24. Làm thế nào để chuyển đổi một số ("") thành Không có trong một dòng?
- 25. Chuyển đổi tên tháng thành số tháng trong SQL Server
- 26. Làm thế nào để chuyển đổi một chuỗi ký tự 18 thành một ID duy nhất?
- 27. Chuyển đổi tên tháng thành số
- 28. Làm thế nào để chuyển đổi một chuỗi thành một byte [] trong Clojure?
- 29. Làm thế nào để chuyển đổi một chuỗi trích dẫn thành một bình thường trong Makefile?
- 30. Làm thế nào để chuyển đổi một chuỗi thành một đối tượng BinaryExpression?
Tôi chọn câu trả lời này vì nó đơn giản hơn –
Có thể 'MONTHS = (dummy Jan Feb Mar Apr May Jun Jul Aug Sep Oct December Dec)' sẽ trực quan hơn khi đó là '4' map thành' Apr'. – potong
@potong +1 Thật vậy ... ;-) –