首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用awk按命令/shell(/etc/passwd的最后一个元素)对用户进行分组

使用awk按命令/shell(/etc/passwd的最后一个元素)对用户进行分组,可以通过以下步骤实现:

  1. 首先,使用awk命令读取/etc/passwd文件的内容,并以冒号(:)作为分隔符,将每行的字段分割为不同的列。命令如下:
  2. 首先,使用awk命令读取/etc/passwd文件的内容,并以冒号(:)作为分隔符,将每行的字段分割为不同的列。命令如下:
  3. 上述命令中的$NF表示每行的最后一个字段。这里我们使用它来获取每个用户的shell信息。
  4. 接下来,我们可以使用sort命令对shell信息进行排序,以便将相同shell的用户分组在一起。命令如下:
  5. 接下来,我们可以使用sort命令对shell信息进行排序,以便将相同shell的用户分组在一起。命令如下:
  6. 最后,我们可以使用uniq命令对排序后的结果进行去重,以得到每个唯一的shell和对应的用户列表。命令如下:
  7. 最后,我们可以使用uniq命令对排序后的结果进行去重,以得到每个唯一的shell和对应的用户列表。命令如下:
  8. 上述命令中的-c选项用于计数每个唯一的shell出现的次数,即对应的用户数量。

这样,我们就可以按照命令/shell将用户进行分组,并得到每个唯一的shell和对应的用户数量。根据实际需求,可以进一步对分组结果进行处理和分析。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器运维:https://cloud.tencent.com/product/cvm
  • 腾讯云云原生服务:https://cloud.tencent.com/product/tke
  • 腾讯云网络通信:https://cloud.tencent.com/product/vpc
  • 腾讯云网络安全:https://cloud.tencent.com/product/ddos
  • 腾讯云音视频处理:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux基础命令介绍八:文本分析 awk

每一行输入,awk来说都是一条记录(record),awk使用$0来引用当前记录: [root@centos7 ~]# head -1 /etc/passwd | awk '{print $0}' root...对于每条记录,awk使用分隔符将其分割成列,第一列用$1表示,第二列用$2表示...最后一列用$NF表示 选项-F表示指定分隔符 如输出文件/etc/passwd第一行第一列(用户名)和最后一列(登录shell...awk中有两个特殊pattern:BEGIN和END;它们不会对输入文本进行匹配,BEGIN对应action部分组合成一个代码块,在任何输入开始之前执行;END对应action部分组合成一个代码块...还支持数组,数组索引都被视为字符串(即关联数组),可以使用for循环遍历数组元素 如输出文件/etc/passwd中各种登录shell及其总数量 #注意数组赋值及for循环遍历数组写法 [root@...如判断文件/etc/passwd中UID大于500登录shell是否为/bin/bash,是则输出整行,否则输出UID为0行: #注意为避免混淆目录分隔符进行了转义 [root@centos7 ~

1.4K20

awk命令详解+示例

通常用在Shell脚本中,获取指定数据,单独使用时,可对文本数据做统计 创造者:Aho、Weinberger、Kernighan 二、语法格式 1、格式 格式1:前置命令 | awk [选项] ‘条件...bin结尾(第6个字段做~匹配)用户名、宿主目录信息: # awk -F: ‘6~/bin/{print 1,6}’ /etc/passwd 输出其中登录Shell不以nologin结尾(第7个字段做...)提取出来 找到使用bash作登录Shell本地用户;列出这些用户shadow密码记录 每行“用户名 –> 密码记录”保存到getupwd.log #/bin/bash ## 创建空文件 > /tmp...“下标”]=”元素值” ##下标不一定是数字,也可以是字符 使用数组:数组名[下标] 输出数组元素值: print 数组名[下标] # awk ‘BEGIN{teagrp[1]=”plj...通过awk提取信息时,利用IP地址作为数组下标,每遇到一个重复值就将此数组元素递增1,最终就获得了这个IP地址出现次数。

2.5K10
  • 10分钟学会 linux awk命令

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"t"$7}' root...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头: awk -F: ‘/^root/’ /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    1K30

    linux awk命令详解

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    4.3K101

    10分钟学会 linux awk命令

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"t"$7}' root...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头: awk -F: ‘/^root/’ /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    99690

    linux AWK学习

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头awk -F: '/^root/' /etc/passwd   搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/

    3.1K30

    Linux三剑客之awk命令详解

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头: awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F:

    65430

    linux命令学习之awk

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    1.2K20

    linux awk命令详解

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    2.9K100

    10分钟学会 linux awk命令

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"t"$7}' root...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头: awk -F: ‘/^root/’ /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    68100

    awk 基础入门

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头: awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    1K20

    一天一个 Linux 命令(21):awk 命令

    5.2 shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...#example: awk '{print NF}' /etc/passwd :打印每行最后一个字段为第几个字段,这里是数量引用,不是对应值引用 awk '{print $NF}' /etc/passwd...=0) next;print $1,$3}' /etc/passwd 十一、awk数组 11.1 定义数组 1、可使用任意字符串,字符串要使用双引号 2、如果某数组元素事先不存在,在引用时awk会自动创建此元素...文件中shell种类和个数 awk -F: '{shell[$NF]++}END{for(A in shell){print A,shell[A]}}' /etc/passwd 重点解析一下这条命令...其中$NF所代表一个字符串,即shell类型。也就是说在这个数组中元素名称是shell名称。而后面的++是这个数组进行赋值。

    2.1K20

    Linux命令(36)——awk命令

    它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。...其中pattern表示AWK在数据中查找内容,而action是在找到匹配内容时所执行一系列命令。花括号{}不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。.../bin/awk最后通过键入脚本名称来调用。 (3)将所有的awk命令插入到一个单独文件,然后使用-f选项调用。...(3)如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加”blue,/bin/nosh”。...[7]awk使用shell命令 [8]awk按照多个分隔符进行分割

    2.3K20

    常用 linux 命令集锦

    1.cat命令可以一次显示整个文件,如果文件比较大,使用不是很方便; 2.more命令可以让屏幕在显示满一屏幕时暂停,此时可按空格健继续显示下一个画面,或Q键停止显示。...花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索支持正则,例如找root开头: awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root...END:让用户最后一条输入记录被读取之后发生动作。 几个实例: $ awk '/^(no|so)/' test-----打印所有以模式no或so开头行。

    4.5K10

    linux awk命令详解

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。...先执行BEGING,然后读取文件,读入有/n换行符分割一条记录,然后将记录指定域分隔符划分域,填充域,0则表示所有域,1表示第一个域, 搜索/etc/passwd有root关键字所有行 #awk

    7.3K20

    linux awk命令详解

    花括号({})不需要在程序中始终出现,但它们用于根据特定模式一系列指令进行分组。 pattern就是要表示正则表达式,用斜杠括起来。...2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行:#!...如果只是显示/etc/passwd账户和账户对应shell,而账户与shell之间以tab键分割 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'...搜索/etc/passwd有root关键字所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash 这种是pattern使用示例...搜索支持正则,例如找root开头awk -F: '/^root/' /etc/passwd 搜索/etc/passwd有root关键字所有行,并显示对应shell # awk -F: '/root

    3.6K30

    Linux提权姿势一:滥用SUDO提权

    这样不仅减少了root用户登录 和管理时间,同样也提高了安全性。sudo不是shell一个代替,它是面向每个命令。...身份执行指令(#uid 为该 username 使用者号码) -s 执行环境变数中 SHELL 所指定 shell ,或是 /etc/passwd 里所指定 shell -H 将环境变数中...第一部分是用户,第二部分是用户可以在其中使用sudo命令终端,第三部分是他可以充当用户最后一部分是他在使用时可以运行命令。...下并按Enter 使用less/more命令 sudo less / etc / hosts sudo more / etc / hosts 之后!...下并按Enter 使用awk命令 sudo awk'BEGIN {system(“ / bin / sh”)}' 使用nano命令 nano是使用此编辑器文本编辑器,在您需要切换用户之后,您可以修改

    11.7K20

    awk学习笔记

    awk通过逐行遍历一个或多个 文件方式,查找模式匹配到行,而后以指定分隔符(缺省为空格)进行切片,然后针对切片数据进行处理和分析。...事实上,gawk有自己语言,其本身就 相当于一个解释器,允许用户创建简短程序读取输入文件,输入数据执行排序、计算以及生成报表操作,甚至可以类似bash shell实现诸如循环、数组、条件判断、函数...//awk使用中,需要处理文件,逐行使用分隔符分割成若干个字段,称之为域,分隔符默认是空格,可使用-F选项来指定分隔符 2、shell脚本模式 将所需执行awk命令插入...3、所有awk命令写入到一个单独文件,当处理同一类文件需求时,使用awk -f awk-script inputfiles调用之,其中awk-script指awk脚本。...取出/etc/passwd中包含root行并打印出用户名和默认shell # awk -F: ‘/root/ {print $1,$7}' /etc/passwd ?

    1.9K60

    Linux中awk使用方法详解

    在学习awk之前我们应该都学过sed,grep,tr,cut等等命令,这些命令都是为了方便我们Linux下文本和数据处理,但是我们会发现很多时候这些命令并不能一下子就完全解决我们需求,很多时候我们都需要使用管道符结合这些命令使用...语句块、能够使用模式匹配通用语句块、END语句块3部分组成,这三个部分是可选。...我们指定/etc/passwd作为输出文件,执行awk时,它就会依次/etc/passwd每一行执行print命令。 ?...默认域分隔符是”空白键” 或 “[tab]键”,所以1表示登录用户, 打印/etc/passwd下所有的用户名 [root@localhost ~]# awk -F: '{print $1}' /etc...print NF可以打印出一行中最后一个字段,使用(NF-1)则是打印倒数第二个字段,其他以此类推: [root@localhost ~]# echo -e "line1 f2 f3\n line2

    3.5K31
    领券