簡體   English   中英

使用 awk 腳本語言遍歷多行字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM