Tin hay không, tôi không thể tìm thấy câu trả lời cho những gì tôi nghĩ sẽ là câu hỏi rất cơ bản này.lặp qua các ký tự trong chuỗi đầu vào bằng cách sử dụng awk
Khi bị lúng túng, làm cách nào tôi có thể lặp lại ký tự chuỗi đầu vào theo ký tự? Giả sử tôi chỉ muốn in chúng ra. Có một mảng tôi có thể truy cập? Hay tôi cần sử dụng chất nền?
Về cơ bản, một cái gì đó như:
echo "here is a string" | awk '
{ for(i=0; i<[length of input string]; i++)
printf [value at index i in array x];
}'
Thẳng thắn mà nói, tôi cảm thấy xấu hổ.
thực sự, length() là một tiện ích mở rộng gawk AFAIK, nó không hoạt động trên nền tảng tinh khiết awk http://stackoverflow.com/questions/14720898/illegal-reference-to-an-array-in-awk-i- am-having-trouble-figuring-out-awk – vaxquis
@vaxquis Tôi không chắc chắn những gì bạn có nghĩa là bởi "tinh khiết" awk, nhưng 'chiều dài' là trong POSIX. Phần mở rộng gawk là áp dụng cho mảng thay vì chuỗi. May mắn thay, chúng ta chỉ có thể chuyển 'length (chars)' thành 'length ($ 0)'. –
"tinh khiết" awk trong ý nghĩa của "không phải bất kỳ awk mở rộng" ... và có, tôi có nghĩa là cách sử dụng này của chiều dài(); Ngoài ra, bạn có thể sử dụng "len = split (...)" và sau đó "i <= len" với cùng một kết quả. – vaxquis