1 第2.3节:AWK的输入和输出
AWK
作为一款强大的文本处理工具,在输入和输出方面有多种方式。下面详细介绍 AWK
从不同来源读取数据以及将处理结果输出到不同目标的方法。
1.1 输入方式
1.1.1 从标准输入读取数据
可以通过管道
或直接在命令行
输入数据,让 AWK
从标准输入读取。
- 通过管道:将前一个命令的输出作为
AWK
的输入。例如,使用echo
命令输出文本,再通过管道传递给AWK
处理:
echo "apple banana cherry" | awk '{ print $2 }'
此命令会打印出输入文本的第二个字段,即 banana
。
- 直接在命令行输入:使用
-
作为输入文件,手动输入数据,按Ctrl + D结束输入。示例如下:
awk '{ print $1 }' -
当你输入数据后按 Enter
,AWK
会处理每行并打印第一个字段,输入结束后按Ctrl + D即可。
🕮说明:
这种方式,每回车一行,就处理一行,并不会到最后按下Ctrl + D才统一处理,所以,输入和结果是混在一起的。调试脚本的时候有些许作用,并不推荐使用这种方式。
1.1.2 从文件读取数据
这是最常见的输入方式,直接在 AWK
命令中指定要处理的文件。例如,有一个名为 fruits.txt
的文件,内容如下:
apple 10
banana 20
cherry 30
使用以下命令处理该文件:
awk '{ print $1 }' fruits.txt
此命令会打印出文件中每行的第一个字段,即 apple
、banana
和 cherry
。
1.2 输出方式
1.2.1 输出到标准输出
默认情况下,AWK
的处理结果会输出到标准输出,也就是终端屏幕。例如:
awk '{ print $2 }' fruits.txt
该命令会将 fruits.txt
文件中每行的第二个字段输出到终端,即 10
、20
和 30
。
1.2.2 输出到文件
可以使用重定向符号 >
或 >>
将 AWK
的输出保存到文件中。
- 覆盖输出(
>
):使用>
会覆盖文件原有的内容。示例如下:
awk '{ print $1 }' fruits.txt > output.txt
此命令会将 fruits.txt
文件中每行的第一个字段输出到 output.txt
文件中,如果 output.txt
文件已存在,其原有内容会被覆盖。
- 追加输出(
>>
):使用>>
会将输出追加到文件末尾。示例如下:
awk '{ print $2 }' fruits.txt >> output.txt
该命令会将 fruits.txt
文件中每行的第二个字段追加到 output.txt
文件末尾。
综上所述,AWK 提供了灵活的输入和输出方式,能满足不同场景下的文本处理需求。你可以根据具体情况选择合适的输入源和输出目标。
作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.