小编use*_*663的帖子

使用awk在文件中打印重复的行

我要求在uniq -D选项不支持的文件中打印所有重复的行.所以我在考虑使用awk打印重复行的另一种方法.我知道,我们在awk中有一个选项,如下所示.

TESTFILE.TXT

apple
apple
orange
orange
cherry
cherry
kiwi
strawberry
strawberry
papaya
cashew
cashew
pista
Run Code Online (Sandbox Code Playgroud)

命令:

awk 'seen[$0]++' testfile.txt
Run Code Online (Sandbox Code Playgroud)

但上面只打印出唯一的重复行.我需要uniq -D命令检索的相同输出.

apple
apple
orange
orange
cherry
cherry
strawberry
strawberry
cashew
cashew
Run Code Online (Sandbox Code Playgroud)

awk sed

8
推荐指数
2
解决办法
7286
查看次数

awk:警告:转义序列`\]'视为普通`]'

echo "A:\ B:\ C:\ D:\" | awk -F'[:\]' '{print $1}'
Run Code Online (Sandbox Code Playgroud)

输出:

awk: warning: escape sequence `\]' treated as plain `]'

A
Run Code Online (Sandbox Code Playgroud)

我收到上面的警告信息,我已经尝试了多个选项来逃避]但是没有解决.

我想用这两个分隔符:\和打印完全字母A,B,C,D通过印刷$1,$2,$3,$4分别.

awk

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

使用awk计算时间差

我有以下 input.txt 文件。我需要计算 2 美元和 3 美元的时间差并以小时为单位打印差值。

P1,       2016-05-30 00:11:20,    2016-05-30 04:36:40
P2,       2016-05-30 00:07:20,    2016-05-30 04:32:31
Run Code Online (Sandbox Code Playgroud)

我有以下代码,但看起来时间显示不准确。请帮忙。

awk -F, '{gsub(/[-:]/," ",$2);gsub(/[-:]/," ",$3);
          d2=mktime($3);d1=mktime($2);
          print $1","(d2-d1)/3600,"hrs";}' input.txt
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出。

P1,4.42222 hrs
P2,4.41972 hrs
Run Code Online (Sandbox Code Playgroud)

但应该显示出差异 4:25:20 小时 4:25:11 小时

提前致谢

bash shell awk

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

标签 统计

awk ×3

bash ×1

sed ×1

shell ×1