`
twtbgn
  • 浏览: 44075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

awk中传入shell变量

    博客分类:
  • awk
 
阅读更多

假设当前目录下有a.log b.log二个文件,利用awk打印出其文件名,脚本如下:

#! /bin/bash
for file in *.log
do
awk 'BEGIN{var=" ' "$file" ' "}END{print var;}' "$file"
done

 

在这里最让人混淆的是单引号和双引号


我们可以利用bash -x test.sh来执行脚本,其会将脚本中的shell变量展开,便于调试

 

’单引号中除(’)都为原本字符,没有特殊意义

"双引号中除($`")都为原本字符,没有特殊意义

 

因此,上述可以展开为:

第一次:

awk 'BEGIN{var="a.log"}END{print var;}‘ a.log

第二次:

awk 'BEGIN{var="b.log"}END{print var;}‘ b.log

 

如果将其写成 awk 'BEGIN{var=' "$file" '}END{print var;}' "$file",则展开为:

第一次:

awk 'BEGIN{var=a.log}END{print var;}‘ a.log

第二次:

awk 'BEGIN{var=b.log}END{print var;}‘ b.log

会报错,因为awk中字符串要用双引号括起来

 

 

将其分解成以下这样,便于理解:

'BEGIN{var=" '   "$file"   ' "}END{print var;}' 这三部分为字符串连接关系

 

转载自:http://blog.csdn.net/gtuu0123/article/details/4647657

分享到:
评论

相关推荐

    linux shell awk获得外部变量(变量传值)简介

    这次主要说下,怎么样把外部变量传入到awk执行语句中。 一、基础: awk [ -F re] [parameter…] [‘pattern {action}’ ] [-f progfile][in_file…] awk一般语法如上面所说。 如: 代码如下:[chengmo@

    linux Shell脚本里面把一个数组传递到awk内部进行处理

    前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法。...众所周知,Shell脚本里面把一个普通变量传递给awk是非常简单的,直接用 -v 参数赋值就行了。 s

    shell 编程指南pdf

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    LINUX与UNIX SHELL编程指南(很全)

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    Linux与unix shell编程指南

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    绝版经典《Linux与UNIX Shell编程指南》

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    UNIX Handbook

    6.shell变量赋初值时存在特殊字符 58 7.sed的参数串中存在 特殊字符 58 8.find在一个目录下找包含一个字符串的所有文件 58 9.shell中确定一个文件的存在 文件ins billdb 58 10.read的参数与实际域的个数不同 58...

    如何在Shell脚本中逐行读取文件.doc

    这个脚本使用输入重定向 `读取文件 `mycontent.txt` 的每一行内容,并将其保存在变量 `rows` 中。然后,使用 `echo` 命令将每行内容输出。 方法二:使用 cat 命令和管道符 第二种方法是使用 `cat` 命令和管道符 `|...

    linux shell 编程教程

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    Linux shell编程指南

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    shell编程和unix命令

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    LINUX 与 UNIX SHELL编程指南

    10.10.6 从 sed 输出中设置 shell 变量 102 10.11 快速一行命令 102 10.12 小结 103 第 11 章 合并与分割 104 11.1 sort 用法 104 11.1.1 概述 104 11.1.2 sort 选项 104 11.1.3 保存输出 105 11.1.4 sort ...

    LINUX与UNIX SHELL编程指南

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    LINUX与UNIX Shell编程指南

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

Global site tag (gtag.js) - Google Analytics