awk 如何读取命令行上的参数
来源:互联网 发布:android网络通信方式 编辑:程序博客网 时间:2024/05/20 20:02
大部分的应用程序都允许使用者在命令之后增加一些选择性的参数.执行awk时这些参数大部分用于指定数据文件文件名, 有时希望在程序中能从命令行上得到一些其它用途的数据.本小节中将叙述如何在awk程序中取用这些参数.
建立文件如下, 命名为 see_arg :
#!/bin/sh awk 'BEGIN {for( i=0; i<ARGC ; i++)print ARGV[i] # 依次印出awk所记录的参数}' $*
执行如下命令 :
$ ./see_arg first-arg second-arg
结果屏幕出现 :
awk
first-arg
second-arg
[ 说明 : ]
ARGC, ARGV[ ] 为awk所提供的内建变量.
ARGC : 为一整数. 代表命令行上, 除了选项-v, -f 及其对应的参数之外所有参数的数目.
ARGV[ ] : 为一字符串数组. ARGV[0],ARGV[1],...ARGV[ARGC-1].
分别代表命令行上相对应的参数.
例如, 当命令行为 :
$ awk -vx=36 -f program1 data1 data2
或
$ awk '{ print $1 ,$2 }' data1 data2
其 ARGC 之值为 3
ARGV[0] 之值为 "awk"
ARGV[1] 之值为 "data1"
ARGV[2] 之值为 "data2"
命令行上的 "-f program1", " -vx=36", 或程序部分 '{ print $1, $2}' 都不会列入 ARGC 及 ARGV[ ] 中.
awk 利用 ARGC 来判断应开启的数据文件个数.
但使用者可强行改变 ARGC; 当 ARGC 之值被使用者设为 1 时;
awk将被蒙骗,误以为命令行上并无数据文件文件名, 故不会以 ARGV[1], ARGV[2],..为文件名来打开文件读取数据; 但在程序中仍可通过 ARGV[1], ARGV[2],..来取得命令行上的数据.
某一程序 test1.awk 如下 :
BEGIN{number = ARGC #先用number 记住实际的参数个数.ARGC = 2 # 自行更改 ARGC=2, awk将以为只有一个资料文件# 仍可藉由ARGV[ ]取得命令行上的资料.for( i=2; i<number; i++) data[i] = ARGV[i]}........
于命令行上键入:
$ awk -f test1.awk data_file apple orange
执行时 awk 会打开数据文件 data_file 以进行处理. 但不会打开以apple,orange 为档名的文件(因为 ARGC 被改成2). 但仍可通过ARGV[2], ARGV[3]取得命令行上的参数 apple, orange
也可以用下列命令来达成上例的效果.
$awk -f test2.awk -v data[2]="apple" -v data[3]="orange" data_file
- awk 如何读取命令行上的参数
- 如何读取shell的命令行参数
- awk处理命令行参数
- awk命令行参数
- 一个通过命令行读取参数的例子
- VC++6.0读取命令行参数的问题
- (转:htk中命令行参数的读取)
- 读取命令行参数的getopt()函数
- Scanner读取命令行参数
- shell 读取命令行参数
- python 读取命令行参数
- getopts读取命令行参数
- Python:读取命令行参数
- 在FormCreate事件中,如何读取命令行参数?求解?
- Swift命令行上的编程-参数测试
- 【python】如何读取命令行的输出
- 如何获取其它程序的命令行参数
- 如何获取其它程序的命令行参数
- AB平台下使用OLE嵌入两种方法
- ASP.NET的多值Cookie的使用
- MFC隐藏进程自身(任务管理器不可见,wSysCheck等工具可见)
- “android.intent.category.DEFAULT”的目的是什么?
- centos下nginx代理tomcat,使nginx同时支持php与jsp
- awk 如何读取命令行上的参数
- CentOS6.3下编译安装配置nginx1.2.3+php5.3.16+mysql5.5.27+memcached1.4.5
- java 求两个数的最大公约数
- ios 简单的多国语言切换,语言切换功能
- 判断滚动视图是往左还是往右
- extjs表单FormPanel验证
- JSP应用服务器搭建实施文档(Nginx+Tomcat)
- 我的的web学习(一)HelloWorld
- Cocos2d-x CocosWidget 项目配置及API说明