假设当前目录下有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;}' 这三部分为字符串连接关系
相关推荐
这次主要说下,怎么样把外部变量传入到awk执行语句中。 一、基础: awk [ -F re] [parameter…] [‘pattern {action}’ ] [-f progfile][in_file…] awk一般语法如上面所说。 如: 代码如下:[chengmo@
前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法。...众所周知,Shell脚本里面把一个普通变量传递给awk是非常简单的,直接用 -v 参数赋值就行了。 s
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
6.shell变量赋初值时存在特殊字符 58 7.sed的参数串中存在 特殊字符 58 8.find在一个目录下找包含一个字符串的所有文件 58 9.shell中确定一个文件的存在 文件ins billdb 58 10.read的参数与实际域的个数不同 58...
这个脚本使用输入重定向 `读取文件 `mycontent.txt` 的每一行内容,并将其保存在变量 `rows` 中。然后,使用 `echo` 命令将每行内容输出。 方法二:使用 cat 命令和管道符 第二种方法是使用 `cat` 命令和管道符 `|...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...