首页 > 其他分享 >无涯教程-AWK - 输出重定向

无涯教程-AWK - 输出重定向

时间:2023-10-21 21:33:11浏览次数:46  
标签:输出 教程 重定向 cmd 无涯 AWK print Learnfk

到目前为止,我们在标准输出流上显示了数据,我们还可以将数据重定向到文件,重定向出现在 print 或 printf 语句之后,AWK中的重定向与shell命令中的重定向一样编写,只不过它们是在AWK程序中编写的。本章将通过适当的示例说明重定向。

重定向运算符

重定向运算符的语法是-

print DATA > output-file

它将数据写入输出文件。如果输出文件不存在,那么它将创建一个。以下示例将 Hello,Learnfk !!! 写入文件。

[Learnfk]$echo "Old data" > /tmp/message.txt
[Learnfk]$cat /tmp/message.txt

在执行此代码时,您将获得以下输出-

Old data

现在,让我们使用AWK的重定向运算符将一些内容重定向到其中。

[Learnfk]$awk 'BEGIN { print "Hello, Learnfk !!!" > "/tmp/message.txt" }'
[Learnfk]$cat /tmp/message.txt

在执行此代码时,您将获得以下输出-

Hello, Learnfk !!!

追加运算符

append运算符的语法如下-

print DATA >> output-file

它将数据附加到输出文件,如果输出文件不存在,那么它将创建一个,使用这种类型的重定向时,新内容将附加在文件末尾。如,以下示例将 Hello,Learnfk !!! 追加到文件中。

[Learnfk]$echo "Old data" > /tmp/message.txt 
[Learnfk]$cat /tmp/message.txt

在执行此代码时,您将获得以下输出-

Old data

现在,让我们使用AWK的append运算符向其中附加一些内容。

[Learnfk]$awk 'BEGIN { print "Hello, Learnfk !!!" >> "/tmp/message.txt" }'
[Learnfk]$cat /tmp/message.txt

在执行此代码时,您将获得以下输出-

Old data
Hello, Learnfk !!!

Pipe 管道

可以通过管道而不是使用文件将输出发送到另一个程序,此重定向打开到命令的管道,并将通过此管道的项目值写入另一个进程以执行命令,重定向参数命令实际上是AWK表达式。这是管道的语法-

print items | command

让我们使用 tr 命令将小写字母转换为大写字母。

[Learnfk]$awk 'BEGIN { print "hello, Learnfk !!!" | "tr [a-z] [A-Z]" }'

在执行此代码时,您将获得以下输出-

HELLO, Learnfk !!!

双向通讯

AWK可以使用|&来与外部过程进行通信,这是双向通信, 例如,以下示例使用tr命令将小写字母转换为大写字母。 我们的command.awk文件包含-

BEGIN {
   cmd="tr [a-z] [A-Z]"
   print "hello, Learnfk !!!" |& cmd
   close(cmd, "to")
   
   cmd |& getline out
   print out;
   close(cmd);
}

在执行此代码时,您将获得以下输出-

HELLO, Learnfk !!!

脚本看起来很神秘吗?让我们揭开它的神秘面纱。

  • 第一个语句 cmd =" tr [a-z] [A-Z]" 是我们从AWK创建双向通讯的命令。

  • 下一条语句,即print命令,为tr命令提供输入, 在这里&| 表示双向通讯。

  • 第三个语句,即 close(cmd," to"),在竞争执行后关闭 to 进程。

  • 下一条语句cmd |&getline out借助getline函数将输出存储到out变量中。

  • 下一条print语句打印输出,最后 close 函数关闭命令。

参考链接

https://www.learnfk.com/awk/awk-output-redirection.html

标签:输出,教程,重定向,cmd,无涯,AWK,print,Learnfk
From: https://blog.51cto.com/u_14033984/7969704

相关文章

  • 无涯教程-AWK - 自定义函数
    函数是程序的基本构建块,AWK允许我们定义自己的函数,大型程序可以分为函数,每个函数可以独立编写/测试。它提供了代码的可重用性。下面给出的是用户定义函数的一般格式-functionfunction_name(argument1,argument2,...){functionbody}在此语法中,function_name是用户......
  • 无涯教程-AWK - 循环语句
    本章以适当的示例说明AWK的循环,循环用于以重复的方式执行一组动作,只要循环条件为真,循环就会继续执行。For循环for循环的语法是-for(initialization;condition;increment/decrement)action最初,for语句执行初始化操作,然后检查条件。如果条件为真,则执行操作,然后执行......
  • ubuntu 20.1 (linux) 下软件安装教程(基本上都是使用命令行安装)
    一、node1.安装教程#第二步,添加源后安装需要什么版本直接替换后面的数字即可,如果需要21,直接将20替换为21就可以了curl-sLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash-#开始进行安装sudoaptinstall-ynodejs#https://learnku.com/articles/42581#......
  • 无涯教程-AWK - 条件判断
    与其他编程语言一样,AWK提供条件语句来控制程序的流程。本章以适当的示例说明AWK的控制语句。If语句它仅测试条件并根据条件执行某些操作。下面给出的是if语句的语法-if(condition)action我们还可以使用下面给出的一对花括号来执行多个动作-if(condition){acti......
  • 无涯教程-AWK - 数组(Array)
    AWK具有关联数组,您可以使用字符串或数字作为数组索引。array_name[index]=value其中array_name是数组的名称,index是数组的索引,而value是分配给数组元素的任何值。创建数组为了获得更多关于数组的见解,让我们创建和访问数组的元素。[Learnfk]$awk'BEGIN{fruits["m......
  • 山石防火墙(老版本)重置密码教程
    一、连接防火墙console口,打开scrt,重启防火墙等待出现bootos......输入:entershell(必须一个一个字母打)二、进入配置文件~#cdflash/config三、查看配置文件/wr_point/etc/mnt/mtdblock2/config#ls-l四、查看配置文件中的账号和密码(密码一般都在config.0这个文档中)/wr_point/e......
  • 无涯教程-AWK - 运算符
    像其他编程语言一样,AWK也提供了大量的运算符。本章通过适当的示例说明AWK运算符。S.No.Operators&描述1ArithmeticOperatorsAWK支持以下算术运算符。2IncrementandDecrementOperatorsAWK支持以下递增和递减运算符。3AssignmentOperatorsAWK支持以下赋值运算......
  • pandas教程02:查找表中数据
    在上篇教程中,我们介绍了pandas的安装、数据的导入与导出以及删除行列的操作。这次让我们一起研究下在pandas中如何根据指定的条件查找表中数据。1.数据准备这次,我们使用一张学生成绩表。还是老样子,保存以下内容到文件“期末成绩表.csv”中。学号,性别,语文,数学,英语2301001,......
  • 无涯教程-AWK - 基本语法
    AWK易于使用,我们可以直接从命令行提供AWK命令,也可以以包含AWK命令的文本文件的形式提供AWK命令。AWK命令行我们可以在命令行的单引号内指定AWK命令,如下所示-awk[options]file...考虑具有以下内容的文本文件marks.txt-1)LearnfkPhysics802)ToolfkMaths......
  • 无涯教程-AWK - 环境设置
    本章介绍如何在GNU/Linux系统上设置AWK环境。软件包安装通常,大多数GNU/Linux发行版默认都提供AWK,如果您没有AWK,请使用高级软件包工具(APT)软件包管理器将其安装在基于Debian的GNU/Linux[jeryy]$sudoapt-getupdate[jeryy]$sudoapt-getinstallgawk同样,要在基于RPM的GNU/L......