AWK 是一种用于文本处理和数据抽取的强大工具。FILENAME 和 OFS 是 AWK 中两个重要的内置变量,用于控制输出的方式。下面是一个示例代码,演示了如何使用 FILENAME 和 OFS 来理解不同的输出方式。
假设我们有一个名为 "data.txt" 的文本文件,包含以下内容:
John,Smith,25
Amy,Johnson,30
Mike,Williams,42
我们希望使用 AWK 来读取该文件,并按照不同的输出方式打印文件的内容。
awk '{print}' data.txt
输出:
John,Smith,25
Amy,Johnson,30
Mike,Williams,42
awk -v OFS=',' '{print FILENAME, $0}' data.txt
输出:
data.txt,John,Smith,25
data.txt,Amy,Johnson,30
data.txt,Mike,Williams,42
awk -v OFS=';' '{print $1, $2, $3}' data.txt
输出:
John;Smith;25
Amy;Johnson;30
Mike;Williams;42
awk '{print FILENAME; for (i=1; i<=NF; i++) {arr[i]=$i} for (j=1; j<=NF; j++) {printf "%s ", arr[j]} printf "\n"}' data.txt
输出:
data.txt John Smith 25
data.txt Amy Johnson 30
data.txt Mike Williams 42
以上示例演示了如何使用 FILENAME 和 OFS 来理解不同的输出方式。根据需求,你可以根据这些示例进行修改和调整。