[英]Loop through multiline string using awk scripting language
我有一個腳本,它讀取一個包含多行的字符串。 我需要遍歷每一行。
例如:
文件awktest
#!/bin/awk -f
BEGIN {
LINES = "line1\nline2\nline3\n";
while ( LINES ) {
print line;
}
exit 1;
}
我什么都試過了。 這是我最后的手段。 謝謝你的幫助。
使用 awk 的split
功能:
awk 'BEGIN {
LINES = "line1\nline2\nline3\n";
n=split(LINES,a,"\n");
for (i=1;i<n;i++) print a[i]
}'
輸出:
line1
line2
line3
n=split(LINES,a,"\\n")
- 通過分隔符\\n
將字符串LINES
拆分為塊數組 ( a
)。
n
是塊的數量
for (i=1;i<n;i++)
- 遍歷所有子串
您可以將 FS 設置為\\n
並像這樣迭代每個字段:
$ awk 'BEGIN{FS="\\\\n"; OFS="\n";} {for(i=1; i<NF; i++){print $i} }' <<<"$LINES"
line1
line2
line3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.