topics

全部话题 - 话题: awk
1 2 3 4 5 末页 (共10页)
g****g
发帖数: 1828
1
来自主题: Linux版 - awk
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎
之一。这种编程及数据操作语言(其名称得自于它的创始人 阿尔佛雷德·艾侯 、
Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所
拥有的知识。 AWK 提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、
流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语
言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言: AWK 程序设计语
言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程
序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,
还有无数其他的功能。gawk 是 AWK 的 GNU 版本。
最简单地说,AWK 是一种用于处理文本的编程语言工具。AWK 在很多方面类似于 Unix
shell 编程语言,尽管 AWK 具有完全属于其本身的语法。它的设计思想来源于
SNOBOL4 、sed 、Marc Rochkind设计的有效性语言、语言工具 y... 阅读全帖
l****n
发帖数: 22
2
来自主题: Unix版 - awk question, looking for help
I am new to use awk. I download the following awk script which assumed to be
correct, but...
When i run awk -f endtoend.awk new.tr > delay.txt
the output are
awk: syntax error near line 1
awk: illegal statement near line 1
awk: syntax error near line 2
awk: illegal statement near line 2
awk: syntax error near line 3
awk: bailing out near line 3
Can anyone tell me what's wrong? Thanks in advance
endtoend.awk
BEGIN {
highest_packet_id = 0;
}
{
action = $1;
time = $2;
node_1 = $3;
node_2 = $4;
src
xt
发帖数: 17532
3
来自主题: Unix版 - awk问题求救 (转载)
【 以下文字转载自 Linux 讨论区 】
发信人: xt (拷贝猫), 信区: Linux
标 题: awk问题求救
发信站: BBS 未名空间站 (Sat Nov 17 18:13:38 2012, 美东)
今天恶补awk,写了这么个小程序
#!/bin/awk -f
BEGIN {
}
{
print "initLen=", length(testvar), "\n"
testvar[length(testvar) + 1]=1
testvar[length(testvar) + 2]=2
for (i = 1; i <= length(testvar); ++i) {
print "testvar[", i, "]=", testvar[i], "\n"
}
}
结果:
awk: test2.awk: line 7: illegal reference to variable testvar
awk: test2.awk: line 8: illegal reference to variable testvar
awk: te... 阅读全帖
xt
发帖数: 17532
4
来自主题: Linux版 - awk问题求救
今天恶补awk,写了这么个小程序
#!/bin/awk -f
BEGIN {
}
{
print "initLen=", length(testvar), "\n"
testvar[length(testvar) + 1]=1
testvar[length(testvar) + 2]=2
for (i = 1; i <= length(testvar); ++i) {
print "testvar[", i, "]=", testvar[i], "\n"
}
}
结果:
awk: test2.awk: line 7: illegal reference to variable testvar
awk: test2.awk: line 8: illegal reference to variable testvar
awk: test2.awk: line 10: illegal reference to variable testvar
请问为什么出错?
f*****r
发帖数: 229
5
来自主题: Unix版 - AWK problem, SOS!
First, in you script, you write: awk 'BEGIB ... ', it's not right. You need to give a
file or stdin as argument, for example: echo $i| awk 'BEGIN ...'
If you want to use float calculation, you can use bc or awk.
Say, you want to calculate: 12./3.4,
then: echo "scale=3; 12./3.4" |bc
or use awk: echo aa | awk 'END {print 12./3.4}' (echo aa is no any meaning, just
give an argument to awk.
G***y
发帖数: 1082
6
来自主题: Linux版 - awk
There are many jobs can be simply done by an "one-liner" in awk. They don't
require fancy syntax in awk and awk is very efficient in these situations.I
just keep a "sed one-liner" and an "awk one-liner" reference card handy.
Anything beyond that I will go for a real language.
h*******x
发帖数: 12808
7
我要写几个awk脚本,有几个函数是公用的,awk里面能不能call两一个awk脚本里面的
函数哪?怎么做啊?
c********e
发帖数: 417
8
来自主题: Unix版 - A question about awk
用 awk 是不是只能读文件内容,而不能修改文件内容?
我用awk来实现把 backuptimes 加 1 的功能.我是这样写的:
awk '/backuptimes/{$2+=1;print}' logfile
print的结果是加 1 后的,但是文件的内容并没有改变,也就是没有加 1 .
难道awk不能改文件?
f********o
发帖数: 1163
9
来自主题: CS版 - 神一般的awk (转载)
【 以下文字转载自 Linux 讨论区 】
发信人: frankliuao (frankliuao), 信区: Linux
标 题: 神一般的awk
发信站: BBS 未名空间站 (Thu Oct 10 16:38:09 2013, 美东)
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'"-9>=0) {print "1"} else {
print "0"}}'
1
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'">=9) {print "1"} else {print
"0"}}'
0
l****g
发帖数: 122
10
来自主题: Linux版 - awk问题求救
testvar如何定义的?如何知道它是array?
稍加改动就可以跑,看看你就知道为什么你的不可以了-
#!/bin/awk -f
BEGIN {
}
{
split($0, testvar)
print "initLen=", length(testvar), "\n"
testvar[length(testvar) + 1]=1
testvar[length(testvar) + 2]=2
for (i = 1; i <= length(testvar); ++i) {
print "testvar[", i, "]=", testvar[i], "\n"
}
}
~/work/shell $ echo "1 2 3" | awk -f xx6.awk
initLen= 3
testvar[ 1 ]= 1
testvar[ 2 ]= 2
testvar[ 3 ]= 3
testvar[ 4 ]= 1
testvar[ 5 ]=
testvar[ 6 ]= 2
w***g
发帖数: 5958
11
来自主题: Programming版 - 还是awk牛B
如果你没有parallel命令,或者命令比较老的话,先用下面的更新。
(wget -O - pi.dk/3 || curl pi.dk/3/) | sudo bash
比如有个大文件XXX有1G, 想数行数。直接就是
cat XXX | wc -l
用parallel就是
cat XXX | parallel --block 10M --pipe wc -l | awk 'BEGIN{a=0;}{a = a+ $1;}
END{print a;}'
wc -l可以换成grep, awk等任意可以以pipe方式运行的程序。
parallel --pipe会把输入分成大致--block指定的大小,默认是1M。然后启动N个wc一
块跑。和hadoop一样,parallel只会在行与行之间切分,所以是awk-friendly的。
parallel --pipe这步相当于map,如果有需要后面再reduce一下。
如果不加--pipe,输入的每一行会作为参数启动一个后面跟的命令。比如你的输入如果
存在大量文件里,那么就是find ... -type f | pipe wc -l 了
很多人不会写... 阅读全帖
c**e
发帖数: 3760
12
【 以下文字转载自 Programming 讨论区 】
【 原文由 cure 所发表 】
is there a way to pass some parameter values into awk?
i can't use shell variables inside awk since it confuses awk.
f********o
发帖数: 1163
13
来自主题: Unix版 - 神一般的awk (转载)
【 以下文字转载自 Linux 讨论区 】
发信人: frankliuao (frankliuao), 信区: Linux
标 题: 神一般的awk
发信站: BBS 未名空间站 (Thu Oct 10 16:38:09 2013, 美东)
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'"-9>=0) {print "1"} else {
print "0"}}'
1
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'">=9) {print "1"} else {print
"0"}}'
0
f********o
发帖数: 1163
14
来自主题: Unix版 - 神一般的awk (转载)
【 以下文字转载自 Linux 讨论区 】
发信人: frankliuao (frankliuao), 信区: Linux
标 题: 神一般的awk
发信站: BBS 未名空间站 (Thu Oct 10 16:38:09 2013, 美东)
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'"-9>=0) {print "1"} else {
print "0"}}'
1
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'">=9) {print "1"} else {print
"0"}}'
0
t*********t
发帖数: 488
15
来自主题: Linux版 - 请问一个awk和sed连用的问题
write 2 (or more) lines is much easier:
cat T2 F2 | awk ' { print $1 } ' > a
echo $title > b
cat T2 F2 | awk ' { print $2 } ' >> b
S*A
发帖数: 7142
16
来自主题: Linux版 - awk
你写 awk 不用看 help? 佩服啊。
我现在写 python 基本上不需要看 help, 所以什么都用 python 干了。
awk 很早以前学过,后来不怎么用就忘掉了。要写肯定也可以,就是
整天看 help 写得慢。
r*****z
发帖数: 906
17
来自主题: Linux版 - awk
一个是学习先后的问题:学awk和perl要比学python早多了
另一个是适用范围问题:适合用awk的场景,如果改用perl或者python,
往往意味着要写“一段”程序,重复早轮子罢了
c****j
发帖数: 258
18
来自主题: Linux版 - self test: awk question
someone asked me to explain this awk usage, it looks like an interesting
question, and potentially useful for some rare case, so I post it here.
echo -e "aa\nbb\ncc\naa\ncc" | awk \!'x[$0]++'
enjoy!
f********o
发帖数: 1163
19
来自主题: Linux版 - 求教awk的问题
有个文件我想用awk命令打印第5到10行怎么写?
打印第5行以后的我会,
awk 'NR>=5 {print $0}' myfile
再加一个条件我就不会了。。。。
xt
发帖数: 17532
20
来自主题: Linux版 - awk问题求救
是这样:我没有看到awk在什么地方可以declare数据类型,但是
我想把一个文件直接用awk读入,然后split再处理,就是用那个
-F选项。当然我知道也可以用cat导入,但是这样是不是就失去
了原有的行号?因为文件头要单独处理。
f********o
发帖数: 1163
21
来自主题: Linux版 - 神一般的awk
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'"-9>=0) {print "1"} else {
print "0"}}'
1
[mac-120183:~] frankliuao% awk 'BEGIN{if("'$a'">=9) {print "1"} else {print
"0"}}'
0
j*a
发帖数: 14423
22
来自主题: Linux版 - 神一般的awk
@arch64:~$ awk 'BEGIN{if('$a'-2>=0) {print "1"}}'
1
@arch64:~$ awk 'BEGIN{if('$a'>=2) {print "1"}}'
1
@arch64:~$
m********5
发帖数: 17667
23
来自主题: Linux版 - 神一般的awk
我这里也正常的
export a=10 #我从0测到100, a-z 都是对的
awk 'BEGIN{if('$a'-9>=0) {print "1"}}'和 awk 'BEGIN{if('$a'>=0) {print "1"}}
'结果完全相同
你最好同时echo "$a", 看看是不是你的a变量本身的值有问题
R******d
发帖数: 1436
24
来自主题: Linux版 - 请问一个awk的问题
文件中第二行开始,到某个匹配行都不打印,其他行打印,怎么通过awk实现,谢谢。
下面这个实现的刚好是个反的:

awk 'NR==2,/mark/' file
y****i
发帖数: 4109
25
来自主题: Linux版 - 请问一个awk的问题
(awk 'NR==1' file && awk '/mark/{i=!i;next}i' file ) >>newfile
G*O
发帖数: 706
26
来自主题: Programming版 - awk求救
我在cygwin下,为啥
awk "/a{2}/"
不灵了?
文件里是有两个连续的a的,awk不能显示出来,谢谢!!!
j***3
发帖数: 142
27
来自主题: Programming版 - 初级awk问题 (转载)
【 以下文字转载自 Unix 讨论区 】
发信人: j1123 (2134), 信区: Unix
标 题: 初级awk问题
发信站: BBS 未名空间站 (Sat Jul 19 17:46:07 2008)
想把文件里 $1 的 "C" 换成 "8"
awk '$1 sub("C","8")' test.txt>test2.txt
不work,只把一行里的第一个 ‘C“ 换了,而且没有限在 $1 里面。
请问要如何做呢,谢谢了
j********x
发帖数: 2330
28
来自主题: Programming版 - 还是awk牛B
怎么总是有人提这种cat xxx | grep/awk/sed ...
直接grep awk sed ...
莫名其妙。。。
o*******e
发帖数: 31
29
来自主题: Unix版 - how to let awk not print?
The default action is print the line
when we use awk, but if I don't want
to print out the line, how can I do
that?
If I want to get rid of the empty line
in a file, can I just use awk or I need
to use sed?
o*******e
发帖数: 31
30
来自主题: Unix版 - how to let awk not print?
what shell do u use?
so awk/perl/sed should be shell independent?
BTW, what is the meaning of '$!' in awk
u just mentioned?
What is the meaning of -pi -e for perl?
d******r
发帖数: 4
31
来自主题: Unix版 - awk求助
输入为两行以上的数据,如
1 1000 2000
2 1001 2001
怎么能用awk比较第二列的数据,例如,如果第二列数据相等就输出0,否则输出1.
能通过awk实现就不用编小程序了,虽然很小.
v**t
发帖数: 25
32
比如一个文本文件test.txt,里面有一行:
#define looptimes 500
我想用awk更改 500, 让它每次自动加100。
我用变量的,但好像变量内容变了,文本内容没有变。
我的命令是:awk '/#define looptimes/ {$3 = $3+100; print} test.txt
q*****m
发帖数: 73
33
awk(or sed) does not alter the original file. Use temp files to
store output:
awk '/#define looptimes/ {$3 = $3+100; print}' test.txt > newtest.txt
j****s
发帖数: 34
34
来自主题: Unix版 - AWK problem, SOS!
Hi, a short script ,
for loop in `ls incbr* `
do
i=0
while [ $i -lt 8 ]
do
echo $loop
name= awk 'BEGIN {print substr("aab",1,3)}'
echo $name$i
i=`expr $i + 1`
echo $i
done
done
当前目录下有的incbr1, incbr2,incbr3三个文件,所以应该有些3*7次循环,
但是,加上awk这句后,打印完第一个aab和1就象进了死循环.
不知何原因?
大侠帮忙看一下把,谢谢了!!
s**s
发帖数: 242
35
来自主题: Unix版 - an AWK question?
awk:
awk '{if(NR > 5) print $0}' file>file.out
r*****r
发帖数: 397
36
【 以下文字转载自 Programming 讨论区,原文如下 】
发信人: ruisher (aa), 信区: Programming
标 题: shell programming and awk questions
发信站: Unknown Space - 未名空间 (Fri Feb 27 22:40:45 2004) WWW-POST
I have a file, which contains lots of fiels.But I only care about two fields,
one is ID field ,the other is score field.For example, ID should begin with
"b", score should be greater than 0.5.So how to write the script?
I try to use C shell and awk together, but the problem is, after I grep and
get the tempory file, how do I p
y*****e
发帖数: 712
37
主要做一些简单的text manipulation, 我每次都临时抱佛脚,四处google, 但看同事
们都是一说要干啥,马上写出几行awk或者perl code, 根本不用再查资料, 效率比我
高多了。我觉得还是应该学学,总结一下,才能记住。不知哪里有这样的课程或者比较
好的资料吗?
s*******u
发帖数: 89
38
上学时候用过一本课本,就叫sed and awk.网上有电子版的,搜搜呗
b******r
发帖数: 79
39
来自主题: Linux版 - 问一个关于awk & shell的问题
有没有这样的问题: awk '{print some command}' | tcsh
tcsh 执行的command的顺序可能和print的顺序不一样?
谢谢!
a*******e
发帖数: 3021
40
来自主题: Linux版 - 怎么使用awk?
一个文件如下内容 $WORKDIR/Ycolour
Thu Oct 22 18:35:34 EDT 2009
pnmpsnr: PSNR between /home/temp/abc/b1.ppm and /home/temp/abc/b2.ppm:
pnmpsnr: Y color component: 41.55 dB
pnmpsnr: Cb color component: 42.03 dB
pnmpsnr: Cr color component: 43.70 dB
怎么抓取倒Y color后面的数字?
我看源程序里用下面的命令,但是始终给我抓的是0..
还有我哪个$WORKDIR能这么用嘛?
Y=`awk '/Y color/ {print int($4)}' $WORKDIR/Ycolour`
echo $Y
i**g
发帖数: 134
41
来自主题: Linux版 - 怎么使用awk?
awk默认的分隔符是空格,你的数字是在第5上,不是第4
R******d
发帖数: 1436
42
来自主题: Linux版 - 请问一个awk的问题
有个文本,格式如下:
1 ab123>ac124
2 am501
3 ax230>ay241>az257
目标格式为:
1 ad124
2 am501
3 az257
也就是说第二个colum取最后一个>的字段,如果没有>,则取唯一的那个。
请问用awk怎么完成,谢谢
j*a
发帖数: 14423
43
来自主题: Linux版 - 请问一个awk的问题
awk '{print substr($0, length($0)-4)}'
R******d
发帖数: 1436
44
来自主题: Linux版 - 请问一个awk的问题
awk的正则表达式是不是不怎么好用?相比sed的话
R******d
发帖数: 1436
45
来自主题: Linux版 - 请问一个awk和sed连用的问题
意图是这样的:
把T2 F2两个文件合并,然后对这个合并后的文件进行处理:
第一列打印到文件a,第二列添加一行(这一行是以一个变量的形式写的)后打印到文
件b。
下面是我写的,报错:
cat T2 F2|awk '{print $1 >"a";print $2|"sed "1s/^/'"$title"'\n/"" > "b" }'
请问怎么写才对?多谢了。
R******d
发帖数: 1436
46
来自主题: Linux版 - 请问一个awk和sed连用的问题
哎呀,我不是想学怎么在awk里nest sed么。
出错可能和一些特殊符号的转义有关。
S*A
发帖数: 7142
47
来自主题: Linux版 - awk
FT, 现在还有谁用 awk 啊。
大家不是都用 Python, Perl 什么的么?

Unix
E*V
发帖数: 17544
48
来自主题: Linux版 - awk
ft, awk is convenient
r*****z
发帖数: 906
49
来自主题: Linux版 - awk
ft,awk能解决的事情,何苦上perl或者python?
r*****z
发帖数: 906
50
来自主题: Linux版 - awk
我相信,对于大多数有经验的*NIX用户而言,awk语法是常识
1 2 3 4 5 末页 (共10页)