标签: awk

使用awk解析csv并忽略字段内的逗号

我有一个csv文件,其中每行定义给定建筑物中的房间.与房间一起,每排都有一个场地.我要提取的是所有建筑物的所有楼层.

我的文件看起来像这样......

"u_floor","u_room","name"
0,"00BDF","AIRPORT TEST            "
0,0,"BRICKER HALL, JOHN W    "
0,3,"BRICKER HALL, JOHN W    "
0,5,"BRICKER HALL, JOHN W    "
0,6,"BRICKER HALL, JOHN W    "
0,7,"BRICKER HALL, JOHN W    "
0,8,"BRICKER HALL, JOHN W    "
0,9,"BRICKER HALL, JOHN W    "
0,19,"BRICKER HALL, JOHN W    "
0,20,"BRICKER HALL, JOHN W    "
0,21,"BRICKER HALL, JOHN W    "
0,25,"BRICKER HALL, JOHN W    "
0,27,"BRICKER HALL, JOHN W    "
0,29,"BRICKER HALL, JOHN W    "
0,35,"BRICKER HALL, JOHN W    "
0,45,"BRICKER HALL, JOHN W …
Run Code Online (Sandbox Code Playgroud)

csv awk

36
推荐指数
4
解决办法
4万
查看次数

在AWK中,是否可以指定字段的"范围"?

在AWK中,是否可以指定字段的"范围"?

例.给定一个制表符分隔的文件"foo",每行100个字段,我想只打印每行的字段32到57,并将结果保存在文件"bar"中.我现在应该做什么:

awk 'BEGIN{OFS="\t"}{print $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57}' foo > bar
Run Code Online (Sandbox Code Playgroud)

这样做的问题是输入和容易出错是很繁琐的.

是否有一些句法形式允许我以更简洁,更不容易出错的方式(如"$ 32 .. $ 57")说出同样的内容?

awk

36
推荐指数
4
解决办法
6万
查看次数

用awk或sed删除一列

我有一个包含三列的文件.我想删除第3列(就地编辑).我怎么能用awk或sed做到这一点?

123   abc  22.3
453   abg  56.7
1236  hjg  2.3
Run Code Online (Sandbox Code Playgroud)

期望的输出

123  abc
453  abg
1236 hjg 
Run Code Online (Sandbox Code Playgroud)

awk sed

36
推荐指数
7
解决办法
9万
查看次数

awk或声明

awk是否有OR声明,给出以下代码段:

awk '{if ($2=="abc") print "blah"}'
Run Code Online (Sandbox Code Playgroud)

是否可以添加一个OR语句,以便$2==abc OR def -> print

awk

36
推荐指数
2
解决办法
7万
查看次数

如何使用`awk`打印正则表达式匹配?

有没有办法awk在shell中使用命令打印正则表达式匹配(但只有匹配的字符串)?

bash shell awk

35
推荐指数
2
解决办法
6万
查看次数

根据日期范围过滤日志文件条目

我的服务器具有异常高的CPU使用率,我可以看到Apache使用太多的内存.我有一种感觉,我是一个IP的DOS - 也许你可以帮我找到他?

我使用以下行,找到10个最"活跃"的IP:

cat access.log | awk '{print $1}' |sort  |uniq -c |sort -n |tail
Run Code Online (Sandbox Code Playgroud)

前5个IP对服务器的请求大约是"普通"用户的200倍.但是,我不知道这5个是非常频繁的访问者,还是他们正在攻击服务器.

是否有方法,将上述搜索指定为时间间隔,例如.最近两个小时或今天10-12之间?

干杯!

2011年10月23日更新 - 我需要的命令:

在过去X小时内获取条目[这里两小时]

awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print Date FS $4}' access.log
Run Code Online (Sandbox Code Playgroud)

在过去X小时内获取最活跃的IP [这里两小时]

awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print $1}' access.log | sort  |uniq -c |sort -n | tail
Run Code Online (Sandbox Code Playgroud)

在相对时间范围内获取条目

awk -vDate=`date -d'now-4 hours' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && …
Run Code Online (Sandbox Code Playgroud)

linux apache ubuntu awk

35
推荐指数
1
解决办法
5万
查看次数

如何将上下文后面的grep设置为"直到下一个空白行"?

使用grep我知道如何将上下文设置为固定数量的行.是否可以根据任意字符串条件显示上下文,例如将后上下文设置为"直到下一个空白行"?

或者可能还有其他一些工具组合?

基本上我有一个连续行的日志文件,空白行分隔我要在日志文件中搜索字符串的"事件",但显示整个事件....

unix linux awk grep

35
推荐指数
3
解决办法
2万
查看次数

AWK首先打印$ 2,然后$ 1

这是输入(样本):

name1@gmail.com|com.emailclient.account
name2@msn.com|com.socialsite.auth.account
Run Code Online (Sandbox Code Playgroud)

我正在努力实现这个目标:

Emailclient name1@gmail.com
Socialsite name2@msn.com
Run Code Online (Sandbox Code Playgroud)

如果我像这样使用AWK:

cat foo | awk 'BEGIN{FS="|"} {print $2 " " $1}'
Run Code Online (Sandbox Code Playgroud)

它通过在字段2的顶部覆盖字段1来弄乱输出.

有什么提示/建议吗?谢谢.

unix awk

35
推荐指数
2
解决办法
18万
查看次数

Linux bash脚本提取IP地址

我想在我的Debian 7.3上制作大脚本(类似翻译的内容和更多新的用户友好环境).我有个问题.我只想使用命令给我的一些信息.例如,我的ifconfig看起来像:

eth0      Link encap:Ethernet  HWaddr 08:00:27:a3:e3:b0  
          inet addr:192.168.1.103  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fea3:e3b0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1904 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2002 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1309425 (1.2 MiB)  T
Run Code Online (Sandbox Code Playgroud)

我想只显示IP地址:echo"你的IP地址是:(IP_ADDRESS)".是否有任何命令允许我做这样的事情,在流中搜索我想要得到的信息?我知道grep,sed但我对他们并不是很好.

编辑:首先要感谢您帮我解决这个问题,现在我知道了更多.其次说项目正在进行中.如果有人对它感兴趣,请关注我.

linux bash awk sed

35
推荐指数
6
解决办法
11万
查看次数

34
推荐指数
2
解决办法
3万
查看次数

标签 统计

awk ×10

linux ×4

bash ×3

sed ×2

shell ×2

unix ×2

apache ×1

csv ×1

grep ×1

ubuntu ×1