shell中,awk命令的$0是什么意思?

比如awk "{print \$0}" 1.txt,我试了下是把1.txt全部显示出来了,
但是$0到底什么意思呢?$1呢?

shell命令awk '{print $0}' 1.txt 的意思是输出1.txt文件的所有内容。

shell命令awk '{print $1}' 1.txt的意思是输出1.txt文件的第一列内容。

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

扩展资料:

shell的种类:

Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。

1、Bourne shell是UNⅨ最初使用的shell,并且在每种UNⅨ上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。

Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。

Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。

2、C shell是一种比Bourne shell更适于编程的shell,它的语法与C语言很相似。Linux为喜欢使用C shell的人提供了Tcsh。Tcsh是C shell的一个扩展版本。Tcsh包括命令行编辑、可编程单词补全、拼写校正、历史命令替换、作业控制和类似C语言的语法,它不仅和Bash shell是提示符兼容,而且还提供比Bash shell更多的提示符参数。

3、Korn shell集合了C shell和Bourne shell的优点并且和Bourne shell完全兼容。Linux系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。

参考资料来源:百度百科-Linux Shell

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-13

shell命令awk '{print $0}' 1.txt 的意思是输出1.txt文件的所有内容。

shell命令awk '{print $1}' 1.txt的意思是输出1.txt文件的第一列内容。

awk是一个文本分析工具,他可以把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理,$几(0除外)就代表选取输出第几列数据,例如$2 是指第二个切片。print $2是打印第二个切片的值。

使用方法:awk '{pattern + action}' {filenames}。

扩展资料

调用awk的方式介绍:

1、shell脚本方式

将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。

相当于shell脚本首行的:#!/bin/sh

可以换成:#!/bin/awk

2、命令行方式

awk [-F  field-separator]  'commands'  input-file(s)

其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

本回答被网友采纳
第2个回答  推荐于2017-11-24
awk默认是以行为单位处理文本的,对1.txt中的每一行都执行后面 "{ }" 中的语句。
awk中的两个术语:
记录(默认就是文本的每一行)
字段 (默认就是每个记录中由空格或TAB分隔的字符串)
$0就表示一个记录,$1表示记录中的第一个字段。
一般 print $0 就是打印整行内容($0前面不需要反斜杠),print $1表示只打印每行第一个字段。本回答被提问者采纳
第3个回答  2011-06-25
awk默认是以行为单位处理文本的,对1.txt中的每一行都执行后面 "{ }" 中的语句。
awk中的两个术语:
记录(默认就是文本的每一行)
$0就表示一个记录,$1表示记录中的第一个字段。
一般 print $0 就是打印整行内容($0前面不需要反斜杠),print $1表示只打印每行第一个字段。

shell中,awk命令的$0是什么意思?
shell命令awk '{print $0}' 1.txt 的意思是输出1.txt文件的所有内容。shell命令awk '{print $1}' 1.txt的意思是输出1.txt文件的第一列内容。Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用...

shell 问题 awk -F',' '{print $0}'
print $0 打印整行,$0表示当前行;若是$1则表示当前行的第一个字段,依此类推。其实这里指定字段分隔符没什么用,因为并不会打印具体的某一个字段,而是整行都打印出来了。等同于 awk '{print}'print默认就是打印整行 等于啥都没处理,原样输出。

干货-Shell编程文本处理三剑客之-awk
在Linux\/UNIX系统中,awk是一个强大的文本处理工具,用于逐行解析输入文本,通过指定的模式执行查找、格式化输出或过滤。在无需用户交互的情况下,awk在Shell脚本中广泛应用,能高效完成自动化配置任务。AWK,全称Alfred Aho、Peter Weinberger和Brian Kernighan的首字母缩写,是一种文本处理语言,它在数据文件...

怎么在文件中每行后面添加行数号(shell命令)
用awk,一条命令就可以搞定:awk '{print $0" "FNR}' file.txt >result.txt其中,$0表示当前处理的文件行内容,FNR表示当前处理的文件行行号。结果存在result.txt中。为拓展思路,下面用一个不同的方法:用sed得到每行行号,存入一个tmp文件,然后用paste合并这两个行数相同的文件就得到了。假设你...

shell脚本awk '!a[$0]++' a.txt 中的!a[$0]++是什么意思,求详细解答
举例解释:a.txt内容为:a a b b c c e f g 你执行后输出结果为:a b c d e f g 重复的不见了。a[$0]就是以每行内容为index的一个hash表;由于执行了++,它的初值变成了0,而!0=1,1为真;如果行内容重复,它的值增加后进行!否运算变成假。

awk if语句
C语言中用system() 执行shell命令:system("shell命令")主要需要解释的是awk,awk主体中的语法其实与C类似,只不过其中用到了正则匹配。格式:awk '' 文件 backbone.c就是awk要处理的文件。0~\/^\\\\\/\\\\*\\\\*\/ :格式:$0 ~ \/正则表达式\/ 作用:判断$0是否匹配正则表达式 ^\\\\\/\\\\*\\\\ 含义:awk...

linux脚本中awk是什么awk后面接的NR是什么意思
NR==2就是对第二行执行后面的操作,也就是 {print $0}, 而print $0 的意思就是打印当前行,也就是第二行。所以 awk 'NR==n{print $0}' file 这条命令的作用就是打印 file 文件的第n行。

linux shell中 ~ 符号代表什么?
shell命令中 代表用户的家目录 使用cd ~ 或者cd 可以转到这个目录 在bash shell awk命令中,~代表匹配正则表达式,例:awk ‘$0 ~ \/.*\/ {print}’ test.txt

awk if 语句
mx_222='echo 5 1 10 | awk '{ if(($1>$2)&&($1>$3)) { print "2" } else {print "0"} }''

awk中使用$0与shell脚本$1有冲突怎么办
1给进去赋值给变量,就不会冲突啦 如你一定要写在一起,不用变量,那就awk '{print $0'$1'}' 这时候$1是脚本传入的第一个参数,而不是awk里的$1

相似回答