当前位置:首页 » 编程软件 » awk脚本

awk脚本

发布时间: 2022-01-08 06:58:14

‘壹’ 脚本awk问题

不用逗号时,代表连接(awk里默认空格是连接符),第一式里应该是空格被哪里吃掉了没贴出来,正确应该是这样:
awk
'{print
$1
"\t"
$2
"\t"
$3}'
names
其中\t代表制表符,及TAB键产生的字符。这里意思是直接插入制表符打印前三列数据。
而式2用逗号隔开的,又是分别的需要显示出的东西,逗号的地方印出时会用指定的分隔符显示,没指定时默认是空格,指定的话就会是其它的,如你可以执行下这个看效果:
awk
'BEGIN{OFS="@"}{print
$1,"name"
$2,"age"
$3}'
names
同理中间空格应该也是丢了,可能会执行出错,我补上了。
区别是第一个命令执行结果是以TAB符分隔的,而第二个命令是以一个空格跟一个TAB分隔的,即后一命令的结果是用两个符号分隔的。
你可以输出到文件,然后拿到其它文件编辑器下查看确认一下

‘贰’ 怎么定义一个文件为awk脚本

楼上的说的很对,不需要什么头语句,你可以直接在里面写你的函数,不过得按照AWK的语法写,可以保存成xxx.awk。
然后在shell脚本中:awk
-f
xxx.awk即可,或者你要给AWK脚本文件中传shell的变量的话,你也可以这样:awk
-v
var=${xx}
-f
xxx.awk
当然-v是传参数,-f是指定awk脚本。
下面是我在网络文库中上传的关于AWK的一篇文章,你也可以参考下:http:/
/wenku..com/view/2ff6c024ccbff121dd368355.html

‘叁’ 如何在shell脚本里传递一个变量给awk

先说简单的,如果是只传递变量,有几种方法:
awk '{print v1, v2}' v1=$VAR1 v2=$VAR2 input_file
# 或者,这种方法不是所有的awk分支都支持
awk -v v1=$VAR1 -v v2=$VAR2 '{print v1, v2}' input_file
# 或者,这种写法是最难受的
awk '{print "'"$VAR1"'", "'"$VAR2"'"}' input_file
把变量用在正则里面的方法:
awk ' $0 ~ v1; {print v2}' v1=$VAR1 v2=$VAR2 input_file

‘肆’ awk循环处理文件的脚本

不用awk啊,因为外面有个循环一行一行读取数据,里面只处理一个字串就行,

也就是分割字串,按照分割符“|”。

cat~/log.txt|whilereadline
do
ipaddr=`echo$line|cut-d"|"-f1`
pwd=`echo$line|cut-d"|"-f2`
echo$ipaddr
echo$pwd
done

‘伍’ 怎样执行awk脚本文件 如:要执行 error_strip.awk 脚本文件

awk脚本文件开头一般都是这样的:#!/bin/awk -f
已经指明了 -f 选项。
执行时,直接在error_strip.awk 后面加要处理的文件名作为参数即可。

‘陆’ 求写个awk脚本

awk_calc.sh 内容如下:

#!/usr/bin/awk -f
BEGIN { FS = "(<)|(ms)" }
{
sum += $2;
if ($2 > max) max = $2;
if (NR == 1)
min = $2;
else
if ($2 < min) min = $2;
}
END {
average = sum / NR;
printf("Maximum: %dms\nAverage: %.2fms\nMinimum: %dms\n", max, average, min);
}

先用 chmod +x awk_calc.sh 给这个脚本赋予可执行权限。
然后执行 ./awk_calc.sh test.log 即可。

‘柒’ linux awk脚本问题

不对呀,我的怎么就可以呢?
我的data 文件:
herry 樱桃
orange 橙子
olive 橄榄
areca 槟榔
coconut 椰子
nectarine 蜜桃
mandarin 蜜橘
pineapple 菠萝
grapes 葡萄
raisins 葡萄干
pear 梨
ginko 银杏
cane 甘蔗
fruit 水果
figs 无花果
bessemyanka 无籽梨
grenades 石榴
mango 芒果
apricot 杏子
apple 苹果
plum 李子
gale 杨梅
calamondin 金橘
medlar 枇杷
banana 香焦-苹果
gout 草莓
banana 香焦
lychee 荔枝
pomelo 柚子
hamiskaya 哈密瓜
lemon 柠檬
peach 桃子
估计是你的脚本中末行有空格?你看我显示的:
Press "ctrl-d" to exit
香蕉 的英文生字是:

Try again!
Try again!
Try again!
banana
You are right !! Press Enter to Continue ---

‘捌’ awk脚本怎么调用

如果你的脚本名称是delay.awk,把这个文件和你要输入的.tr文件放在同一目录下,ns中使用调用命令:
gawk -f delay.awk filename.tr
filename为你要输入的文件夹

‘玖’ 谁能详细解析一下这行带awk命令的SHELL脚本

Linux下脚本的第一行#! 是指明本脚本使用哪个解释器来执行当前脚本,从头文件看出这个一个awk脚本,第一行的意思可以理解为 使用 /usr/bin/awk -f 脚本名 来执行当前脚本:
比如脚本:test.awk的第一行是#!/usr/bin/awk -f那么执行这个脚本的时候就会根据第一行去寻找解释器,效果相当于在shell下执行
/usr/bin/awk -f test.akw
这里的-f是awk命令的一个参数,是从文件中读取脚本执行的意思.

‘拾’ 如何执行这个awk脚本

印象中执行awk的文件应该是在命令行输入awk -f 文件名。 shell脚本那个问题,需要把xx.sh设置为可执行的,chmod u+x xx.sh,然后才可以用./xx.sh

热点内容
嵌入式存储服务器 发布:2024-05-20 22:14:55 浏览:394
sql分组条件 发布:2024-05-20 22:08:49 浏览:15
配网web服务器一个IP地址 发布:2024-05-20 22:07:16 浏览:724
电脑板服务器地址175 发布:2024-05-20 22:03:30 浏览:958
编译静态函数时 发布:2024-05-20 21:51:20 浏览:350
如何在别人的服务器加模组 发布:2024-05-20 21:28:29 浏览:60
服务器的bios芯片电脑店有吗 发布:2024-05-20 21:28:26 浏览:223
剪辑电影什么配置 发布:2024-05-20 21:25:17 浏览:818
解压神器中的诡异事件 发布:2024-05-20 21:17:59 浏览:7
星火草原系统源码 发布:2024-05-20 21:12:44 浏览:767