首页 > 其他分享 >cut 和 awk 用法

cut 和 awk 用法

时间:2023-04-07 15:33:24浏览次数:31  
标签:bin sbin cut 用法 awk wangzy adm root localhost

一、cut

cut 侧重于对内容进行列切割

  • -d 后面的是分割符,表示用什么符号来分割符来分割列,分隔符使用引号括起来
  • -f 后面跟着要选择的字段列,从1开始,表示第一列,如果要多列,可以用逗号分隔 ,可以使用start-end表示一个区间,解决使用逗号的烦恼。
  • -c 参数后面跟着要选择的字符偏移
  • -b 表示后面跟着要选择的字节偏移

实例演示:

# 实例文本

[root@localhost wangzy]# cat test.txt
aaa;bbb;ccc;ddd;eee
fff;ggg;hhh
iii;jjj;kkk;lll;mmm;nnn
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

# -d 分隔符用引号括起来

[root@localhost wangzy]# cut -f 2,3 -d ";" test.txt
bbb;ccc
ggg;hhh
jjj;kkk
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

# 2-3 效果同 2,3效果一样。

[root@localhost wangzy]# cut -f 2-3 -d ";" test.txt
bbb;ccc
ggg;hhh
jjj;kkk
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

# 以 冒号 为分隔符

[root@localhost wangzy]# cut -f 7 -d ":" test.txt
aaa;bbb;ccc;ddd;eee
fff;ggg;hhh
iii;jjj;kkk;lll;mmm;nnn
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
[root@localhost wangzy]#

注意:-d只能和-f一起配合使用,-c不能和-d一起使用,只能单独使用。想一想就很容易明白嘛,-d表示指定分隔符,而-c表示指定区间的字符,不需要分割。

 

二、awk

awk 擅长取列

  • awk用来处理文本和数据,功能很强大,如果是一些简单的操作,可以使用cut命令来实现
  • -F 后面加上分隔符 ,建议空格分开后,使用引号将分隔符括起来,不加-F时,默认是以空格分隔。$0表示整行数据,$1表示第1个字段

用法

用法:awk [options]  ‘{print NR,$0}’ file
-F   指定字段分隔符
NR   表示行号
$0   表示这一行的内容
$1   数字 某一列
$NF  最后一列

实例演示

# 实例参考
[root@localhost wangzy]# cat test.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin
# 获取第5列 [root@localhost wangzy]# cat test.txt |awk -F ":" '{print $5}' root bin daemon adm
# 添加参数 [root@localhost wangzy]# cat test.txt |awk -F ":" '{print $1"=>"$2}' root=>x bin=>x daemon=>x adm=>x [root@localhost wangzy]#

 

标签:bin,sbin,cut,用法,awk,wangzy,adm,root,localhost
From: https://www.cnblogs.com/wangzy-Zj/p/17296322.html

相关文章

  • lambda用法
    在计算机科学中,lambda(λ)是一个被称为匿名函数的概念。lambda函数是一种简单的函数,它可以在代码中作为一种快捷方式来创建函数对象。这种函数通常在需要定义一个函数对象的地方使用,并且可以在不需要显式命名函数的情况下轻松地创建它们。在Python中,lambda函数可以通过lambda表达式......
  • UVA - 10003 Cutting Sticks 区间DP
    题目大意:给出一根木棒长l,上面有k个点,要求从这些点切割,每次切割的代价是当前要切割的木棒的长度,求最小的代价解题思路:区间DP:区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用,将一个区间问题不断划分为更小的区间直至一个......
  • 如何使用awk进行字符串大小写的转换?
    1、问题:如何将下面的这个字符串,全部转换为  大写  ?DOMaiN,verify,reference,offset,LIMIT,TYPE,ref,context,LOGIN,CONTEXT,sa  使用awk的toupper()函数来实现[root@yks01~]#echo"DOMAIN,verify,reference,offset,LIMIT,TYPE,ref,context,LOGIN,CONTEXT,sa"......
  • 使用ScheduledExecutorService延时关闭一个全屏的对话框
    自定义style,设置全屏属性<resources><stylename="AppTheme"parent="android:Theme.Black"/><stylename="processDialog"><itemname="android:windowIsFloating"......
  • Notification的基本用法
    android4.0以前:privatestaticfinalintNOTIFY_ID=0;notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE); privatevoidshowNotification(Storestore){ Notificationnotification=newNotification(); ......
  • JavaScript ES6中class的用法
    实例代码如下classPerson{constructor(name){if(!arguments.length){console.log("我是个人")}else{console.log(`我是${name}`)}}......
  • Vue进阶(四十五):精解 ES6 Promise 用法
    一、前言复杂难懂概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么呢?是类?对象?数组?函数?别猜了,console.dir(Promise)直接打印出来看看。这么一看就明白了,Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上有th......
  • 【c&c++】C语言 char*和char[]用法
    char[]定义的是一个字符数组,注意强调是数组。char*定义的是一个字符串指针,注意强调是指针。char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char*s=“hello”;后,不能使用s[0]=‘a’;语句进行赋值。这是将提示内存不能为"written"......
  • #error and #line 用法
    目前#error和#line很少被使用,但是也可以作为定位问题原因的工具#error用于生成一个编译错误的信息。用于自定义程序员特有的编译错误信息。在预处理时起作用。#errormessage//message打印的编译error信息,不需要双引号包围#warningmessage//由于可能在编译的过程中......
  • OpenJDK源码研究笔记(十):枚举的高级用法,枚举实现接口,竟是别有洞天
    在研究OpenJDK,Java编译器javac源码的过程中,发现以下代码。顿时发现枚举类竟然也有如此“高端大气上档次”的用法。沙场点兵(用法源码)com.sun.tools.javac.file.JavacFileManager.SortFilesprotectedenumSortFilesimplementsComparator<File>{FORWARD{......