gpt4 book ai didi

linux - 为条件语句执行 awk 命令

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:03 29 4
gpt4 key购买 nike

我正在使用 Awk 命令编写一个 bash 脚本来格式化包含一些用户信息的文件,在脚本的开头,我希望它说“如果第 1 列中的值不是 abc123 格式,跳过那一行。虽然它似乎没有用。

我以前有过这个:

$1=="UID" || $1=="rslavin" {
next
}

但当然这不适用于具有不同用户名的其他输入文件。

所以,这是我最近尝试过的:

$1!=([a-z]{3}[0-9]{3}) {

next

}

输入文件看起来像:

1 UID PID PPID C STIME TTY TIME CMD
2 adz110 5344 5334 0 08:47 pts /2 00:00:00 bash
3 dmq292 6908 6854 0 Jun04 pts /1 00:00:00 bash
4 adz110 7227 7150 0 Jul11 pts /9 00:00:00 who
5 erg474 7466 7461 0 08:54 pts /10 00:00:00 ls
6 dmq292 7966 7960 0 Jun04 pts /13 00:00:00 assign1 . sh if of
7 xle135 8983 8636 0 08:59 pts /15 00:00:00 ssh ctf . cs . utsarr . net
8 zeh458 9057 1980 0 08:59 pts /7 00:00:00 vim prog . c
9 rslavin 9150 9139 0 08:59 pts /16 00:00:00 ps - af
10 xle135 8636 8628 0 08:58 pts /15 00:00:00 bash

最佳答案

在您显示的 Input_file 中,我们讨论的列是 $2 而不是 $1,因此理想情况下它应该是:

awk '$2 !~ /[a-z]{3}[0-9]{3}/{next}.........' Input_file

此外,如果您想同时检查小写字母和大写字母,请尝试:

awk '$2 !~ /[a-zA-Z]{3}[0-9]{3}/{next}..........'  Input_file

关于linux - 为条件语句执行 awk 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261706/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com