第2.3节:AWK的输入和输出

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 }' -

当你输入数据后按 EnterAWK 会处理每行并打印第一个字段,输入结束后按Ctrl + D即可。

🕮说明

  这种方式,每回车一行,就处理一行,并不会到最后按下Ctrl + D才统一处理,所以,输入和结果是混在一起的。调试脚本的时候有些许作用,并不推荐使用这种方式。

1.1.2 从文件读取数据

  这是最常见的输入方式,直接在 AWK 命令中指定要处理的文件。例如,有一个名为 fruits.txt 的文件,内容如下:

apple 10
banana 20
cherry 30

使用以下命令处理该文件:

awk '{ print $1 }' fruits.txt

此命令会打印出文件中每行的第一个字段,即 applebananacherry

1.2 输出方式

1.2.1 输出到标准输出

  默认情况下,AWK 的处理结果会输出到标准输出,也就是终端屏幕。例如:

awk '{ print $2 }' fruits.txt

该命令会将 fruits.txt 文件中每行的第二个字段输出到终端,即 102030

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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39258.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章入门Python Flask框架前后端数据库开发实践(pycharm在anaconda环境下)

Python Flask 是一个轻量级的 Web 应用框架,也被称为微框架。它以简洁、灵活和易于上手的特点而受到开发者的喜爱。 核心特点 轻量级:Flask 核心代码简洁,仅包含 Web 开发的基本功能,不强制使用特定的数据库、模板引擎等&#xf…

ctfshow WEB web2

1.查当前数据库名称 or 11 union select 1,database(),3 limit 1,2;#-- 得到数据库名称web2 2.查看数据库表的数量 or 11 union select 1,(select count(*) from information_schema.tables where table_schema web2),3 limit 1,2;#-- 得到数据库表数量为2 3.查表的名字 第…

【Git】--- 分支管理

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Git 本篇博客我们来介绍Git的一个重要功能之一 ---- 分支。我们将讲解关于分支的各种操作,以及如何帮助我们进行开发。 🏠 理解分支…

系统思考与心智模式

“问题不是出在我们做了多少,而是出在我们做了什么。” — 赫尔曼凯恩 “一分耕耘一分收获”,这似乎是我们脑海中根深蒂固的心智模式。今天,我在一家餐厅用餐,店员告诉我,打卡收藏可以获得一份小食。没过多久&#xf…

纯文本驱动的数据可视化革命——AI生成图表「图表狐」全场景深度解析

一、技术架构重定义 图表狐核心能力边界 ✅ 纯文本输入:支持任意格式文字描述(会议纪要/邮件/手写笔记) ✅ 智能解析引擎: 实体识别(数值/时间/分类维度) 语义纠错(自动修复错别字/单位混乱&…

多线程 --- 进程和线程的基本知识

进程 前面我们提到了一个概念是,多任务操作系统,即希望该系统能够同时运行多个程序。本质上说,进程,就算用来解决”并发编程“这样的问题的。 在一些特定的情况下,进程的表现,其实并不能很好的解决”并发…

SCI英文论文Accepted后的第一步——Rights and Access

SCI英文论文Accepted后的第一步——Rights and Access 目录 SCI英文论文Accepted后的第一步——Rights and AccessBased on information provided the embargo period/end date is 24 months. 因为选择闭源**Rights and Access(版权与访问权限)**环节是关键第一步,具体操作流…

流程控制语句

python中的流程控制语句有三种,顺序结构、条件结构和循环结构 1)顺序结构: 从上往下,从左到右,依次逐行执行。 #顺序结构python print(start) print(hello world1 ) print(hello world2 ) print(hello world3 ) pri…

2.4 关键路径法

项目进度管理核心工具全解析 🚀 一、关键路径法(CPM)精要 1. 核心概念图解 #mermaid-svg-5MOABZm9lR8A53ss {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5MOABZm9lR8A53ss .e…

Unity 实现一个简易可拓展性的对话系统

本人能力有限,一切实现仅供参考,如有不足还请斧正 起因是我看到学校社团内有人做了对话系统的分享,我想了想之前没写过这种东西,而Fungus插件教程太老了,NodeCanvas插件学习成本又比较高,我就干脆寻找资料 加上自己迭代一下,花了一天时间完成了这个对话系统 目录 1.介绍 2.核…

架构思维:通用系统设计方法论_从复杂度分析到技术实现指南

文章目录 Question订单履约原始架构痛点目标架构架构图说明关键设计点优点 设计方法论复杂来源解决方案评估标准从设计原则出发 技术实现 (以选型Redis为例)Redis消息队列的实现细节高可用设计 总结 Question 我们经常聊如何设计一个比较完善的系统&…

llama源码学习·model.py[7]Transformer类

一、源码展示 class Transformer(nn.Module):def __init__(self, params: ModelArgs):super().__init__()self.params paramsself.vocab_size params.vocab_sizeself.n_layers params.n_layersself.tok_embeddings VocabParallelEmbedding(params.vocab_size, params.dim,…

MD2Card(markdown)

MD2Card 介绍: 1.小红书爆款神器,Markdown笔记秒转高颜值卡片 2.实时预览15种主题,自动拆长文,图片/SVG导出即用 3.零门槛不登录,免费无限生成,专治排版废和设计手残党 网站地址: https://md2…

第二节第一部分:String字符串

一、导包 二、String字符串 三、String注意事项 四、字符串的比较 五、面试例题 六、String案例一 需求分析: 代码: package com.StringTest;import java.util.Scanner;public class StingTest {public static void main(String[] args) {//1.开发一个…

动态规划(01背包恰好装满型详解):和为目标值的最长子序列长度

0-1背包:有n个物品,第i个物品的体积为w[i],价值为v[i],每个物品至多选择一个,求体积和不超过capacity的最大价值和。 对于第i个物品,我们只有两种选择:选,或者不选。如果选&#xf…

Spring漏洞再现

一、CVE-2017-8046 1、开环境 2、访问目录 /customers/1 3、在当前页抓包,并修改数据包 PATCH /customers/1 HTTP/1.1 Host: 150.158.199.164:8080 Accept-Encoding: gzip, deflate Accept: */* User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;…

Ftrans飞驰云联受邀参加“2025汽车零部件CIO年会“并荣获智象奖

2025年3月6日,由栖观汽车、栖观资讯和飞羽商务主办的“2025第二届中国汽车&零部件CIO年会暨智象奖颁奖盛典”于上海盛大召开,Ftrans飞驰云联作为国内领先的企业文件传输与数据交换解决方案提供商,受邀出席了年会,并凭借卓越的…

西门子 CPU 1513-1 PN TCP Server 接收字符串前多了一个问号

TIA V17编程环境中(CPU 1513-1 PN),调用TSEND_C以TCP协议向TCP Server发送字符串:abded1234,TCP Server接收到的字符串多了一个问号:?avded1234. TSEND_C 指令的 DATA DB为非优化string类型数据 截图如下: 字符串前面两个字节不是起始字符,第一个是字节是字符串最大长度…

Matlab2024a免费版下载教程

Matlab是一个高性能的数学计算与仿真软件,广泛应用于科学计算、数据分析、算法开发以及工程绘图等多个领域。它提供了强大的矩阵运算能力、丰富的内置函数库以及灵活的编程环境,使得用户能够高效地解决复杂的数学问题。本文,我将为大家详细介…

SpringCould微服务架构之Docker(1)

项目中微服务比较多的时候,一个一个手动的部署太麻烦了,所以就需要用到Docker。 项目部署中的问题: Docker是一种快速交付应用、运行应用的技术。