`

awk处理特殊字符(原创)

 
阅读更多

单引号 ( ' ' )

如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件

$ grep 'Susan Gold' phonebook
Susan Goldberg 403-212-4921

当shell碰到第一个单引号时,它忽略掉其后直到右引号的所有特殊字符

如果想打印单引号,可以采用如下方式

 

$ awk 'BEGIN{print "'\''"} '

'

或者用047代替单引号

 

$ awk '{print "\047"}'

'

 

双引号 ( " " )
双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
$ x=*
$ echo $x
hello.sh menus.sh misc.sh phonebook tshift.sh
$ echo '$x'
$x
$ echo "$x"
*
这个例子可以看出无引号、单引号和双引号之间的区别。在最后一种情况中,双引号告诉shell在引号内照样进行变量名替换,所以shell把$x替换为*,因为双引号中不做文件名替换,所以就把*作为要显示的值传递给echo。
对于第一种情况需要进一步说明,shell在给变量赋值时不进行文件名替换(这从第三种情况中也能看出来),各步骤发生的精确次序如下:
shell扫描命令行,把x的值设为星号*;
shell再次扫描命令行,碰到星号*,把它替换成当前目录下的文件清单;
shell启动执行echo命令,把文件清单作为参数传递给echo.
这个赋值的先后次序非常重要:shell先作变量替换,然后作文件名替换,最后把这行处理为参数
反引号(``)
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。
$ echo The date and time is `date`
The date and time is 三 6月 15 06:10:35 CST 2005
$ echo Your current working directory is $(pwd)
Your current working directory is /home/howard/script.
反斜杠 backslash-escaped( \ )
反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号
echo -e "\n"
反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用

 

 

参考至:http://www.cnblogs.com/rootq/articles/1417138.html

                http://blog.chinaunix.net/uid-639516-id-2692529.html

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

0
4
分享到:
评论

相关推荐

    巧用AWK处理二进制数据文件

    但是,AWK的强大功能只针对纯文本文件,对于带有很多不可显示字符的二进制数据文件,单凭AWK就无能为力了。这时我们需要其他工具的帮助。 在Unix下,还有一个工具叫做OD,其全称是“display files in octal format...

    AWK文件处理总结

    ### AWK 文件处理总结 #### 一、AWK 入门篇 AWK 是一种强大的文本处理工具,常用于Linux/Unix环境下。它允许用户通过简单的脚本语言来进行复杂的文本处理任务。 **基本命令格式**: ```bash awk 'pattern { action...

    awk文本处理工具

    在awk中,有几个特殊的内部变量和函数,它们对于文本处理非常有用。$0代表当前处理的整行文本,NR代表已处理的记录总数,FNR代表当前文件中的记录数,NF代表当前记录中的字段数量。FS是输入字段分隔符,OFS是输出...

    用awk数组处理两个文件

    另外,一个具体的例子展示了如何使用`awk`处理以特定字符(本例中为`|`)分隔的文件。`BEGIN`块用于设置输入和输出字段分隔符。当处理第一个文件时,将描述值赋给数组`a`的相应键。处理第二个文件时,检查键是否存在...

    AWK用法AWK用法AWK用法

    根据提供的文件标题、描述、标签以及部分内容,我们可以深入探讨AWK这一强大的文本处理工具的用法及特性。AWK是一种编程语言,专为文本处理设计,尤其适合在Linux或Unix环境中进行数据处理与分析。 ### AWK命令示例...

    awk处理两个文件的方法

    用awk处理两个文件的方法:特定域的合并、替换等

    教你如何使用 awk 处理文本内容.doc

    awk 是 Linux 系统中用于高级文本处理的强大力量。它的基本工作方式是逐行扫描文件,将每一行分解成字段,然后根据预定义的模式对这些行或字段进行匹配,并对匹配的行执行相应的操作。这个工具在数据处理、日志分析...

    linux-利用tcpdump抓包和awk处理写的基于端口的流量统计

    本教程将详细介绍如何利用tcpdump进行网络数据包捕获,并通过awk工具进行后续的数据处理,以实现基于特定端口的流量统计。 tcpdump是一款强大的网络封包分析软件,它能够实时捕获网络中的数据包,同时可以将捕获到...

    AWK中文详细描述

    AWK是一种编程语言,主要用于文本和数据的扫描、处理和报告。它由Aho、Kernighan和Weinberger在1970年代末创建。AWK语言程序设计灵活,特别适用于数据提取、数据转换以及报告生成。 AWK的核心概念包括记录和字段。...

    awk知识文档学习

    - **运算和字符串操作**: Awk可以执行各种数学运算和字符串处理任务。 ### 3. Awk程序和命令结构 Awk程序通常由模式、操作或二者组合而成。模式决定执行哪些操作,操作则定义了当模式匹配时要执行的代码。Awk命令...

    awk详细用法小结awk awk

    gawk扩展了正则表达式的支持,引入了更多的元字符和特殊序列,如`\b`、`\B`、`\、`\>`等,增强了模式匹配的灵活性和精确度。 #### 八、POSIX正则表达式 POSIX标准定义了一套通用的正则表达式语法,gawk也支持这些...

    awk参考资料下载awk

    - **BEGIN和END**: 特殊模式,`BEGIN`在处理任何输入之前执行,`END`在处理完所有输入后执行。 - **操作(action)**: - **变量或数组赋值**: 如`var = value`,可以是字段值或计算结果。 - **输出命令**: 如`...

    awk学习awk学习awk学习awk学习

    **awk** 是一种强大的文本处理工具,常用于Linux/Unix系统中进行数据提取、分析及格式化工作。其名称来源于三位创建者:Alfred Aho、Brian Kernighan 和 Peter Weinberger 的名字首字母缩写。 ##### 基本命令格式:...

    awk教程-awk教程.rar

    - **函数**:awk提供了内置的数学和字符串处理函数,如length()、split()、substr()等。 - **自定义函数**:可以创建用户自定义函数来复用代码。 ### 5. 在Windows中使用AWK 虽然awk是Unix/Linux下的标准工具,但...

    awk教程入门到精通

    awk 是一种功能强大的文本处理工具,它可以对文本进行处理、格式化和输出。awk 的主要用途是处理文本文件,提取和处理数据,生成报表等。下面是一份 awk 教程,从基础知识到高级应用,涵盖了 awk 的基本概念、语法、...

    The AWK Programming Language 中文版

    AWK是一种非常实用的编程语言,它在文本处理和数据分析方面表现出色。它的特点是编写程序非常简单,即便是只有一两行的程序也能完成复杂的任务。AWK非常适合那些需要快速解决特定数据处理问题的场景。 ### AWK程序...

    Effective awk Programming, 4th Edition[awk高效编程4版]

    awk的字符串处理功能在文本分析中极为重要。书中详细介绍了字符串函数,如length、index、sub、gsub等,以及如何进行字符串的拼接和比较。此外,书中还涵盖了数组的使用,包括关联数组和数值数组,它们允许开发者...

    awk命令详解大全

    - **BEGIN和END**:这两个特殊关键字分别在awk开始处理记录之前和之后执行。 - **流程控制语句** - `if-else`语句:根据条件执行不同的代码块。 - `while`语句:重复执行某个代码块直到条件不再满足。 - `do-...

Global site tag (gtag.js) - Google Analytics