cut 选项 文件名

-f 列号  提取第几列

-d 分隔符  指定分隔符把行分成多列

不能以空格为分隔符。

[root@localhost ~]# cattestfile

no. name sex score1 zhangsan m 88

2 lisi f 89

3 wangwu m 87[root@localhost~]# cut -f 2testfile  注释:默认分隔符是制表符\t

name

zhangsan

lisi

wangwu

[root@localhost~]# cut -f 2,4testfile

name score

zhangsan88lisi89wangwu87

[root@localhost ~]# cattestfile

no. na:me sex sco:re1 zhang:san m 8:8

2 li:si f 8:9

3 wang:wu m 8:7[root@localhost~]# cut -f 1,3 -d : testfile

no. na:re1 zhang:8

2 li:9

3 wang:7

root@localhost ~]# cut -f 1 -d : /etc/passwd|grepxiong

xiongjiawei

[root@localhost~]# grep xiong /etc/passwd|cut -d : -f 1xiongjiawei

[root@localhost~]# grep xiong /etc/passwd|cut -d ":" -f 1xiongjiawei

[root@localhost~]# grep xiong /etc/passwd|cut -f 1 -d :

xiongjiawei

[root@localhost~]# grep xiong /etc/passwd|cut -f 1 -d ":"xiongjiawei

printf '格式' 输出内容

%ns  输出n个字符串

%ni  输出n个数字

%n.mf  输出共n位数字,m位小数,如%5.2f表示共3位整数,2位小数

\a  警告声

\b  Backspace键

\f  清屏

\n  换行,常用

\r  Enter,常用

\t  Tab,常用

\v  垂直Tab

awk支持printf和print(linux默认无此命令),print输出会自动加换行,printf是标准格式输出命令,不会自动加换行,如果要换行需要手动加。

[root@localhost ~]# printf %s a b cd ef g 1 2abcdefg12[root@localhost~]# printf %s %s a b cd ef g 1 2

%sabcdefg12[root@localhost ~]# printf '%s %s' a b cd ef g 1 2a bcd efg12 [root@localhost ~]# printf '%s\n%s' a b cd ef g 1 2a

bcd

efg12[root@localhost~]# printf '%s %s\n' a b cd ef g 1 2a b

cd ef

g1

2[root@localhost~]# printf %s $(cattestfile)

no.na:mesexsco:re1zhang:sanm8:82li:sif8:93wang:wum8:7[root@localhost ~]#

[root@localhost~]# cattestfile

no. na:me sex sco:re1 zhang:san m 8:8

2 li:si f 8:9

3 wang:wu m 8:7

awk '条件1{动作1} 条件2{运行2}...' 文件名

默认以空格为分隔符,执行命令时首先读取文件一行。

[root@localhost ~]# cattestfile

no. name sex score age comment1 zhansan m 88 18student2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# awk {printf $2 $4} testfileawk: cmd. line:1: {printfawk: cmd. line:1: ^ unexpected newline or end of string  注释:报错的原因是awk命令后的条件动作未加单引号[root@localhost~]# awk '{printf $2 $4}'testfile

namescorezhansan88li:si89wangwu87[root@localhost~]# awk '{printf $2\t$4\n}'testfileawk: cmd. line:1: {printf $2\t$4\n}awk: cmd. line:1: ^ backslash not lastcharacter on lineawk: cmd. line:1: {printf $2\t$4\n}awk: cmd. line:1: ^syntax error注释:报错是因为制表符\t未加双引号[root@localhost~]# awk '{printf $2 "\t" $4 \n}'testfileawk: cmd. line:1: {printf $2 "\t" $4\n}awk: cmd. line:1: ^ backslash not lastcharacter on lineawk: cmd. line:1: {printf $2 "\t" $4\n}awk: cmd. line:1: ^syntax error  注释:报错是因为换行符\n未加双引号

[root@localhost~]# awk '{printf $2 "\t" $4 "\n"}'testfile

name score

zhansan88li:si89wangwu87[root@localhost~]# awk '{printf $2"\t"$4"\n"}'testfile

name score

zhansan88li:si89wangwu87[root@localhost~]# df -h|awk '{printf $1}'文件系统/dev/sda5devtmpfstmpfstmpfstmpfs/dev/sda2/dev/sdb5/dev/sdb1/dev/sda1tmpfs[root@localhost ~]# df -h|awk '{printf $1"\n"}'文件系统/dev/sda5

devtmpfs

tmpfs

tmpfs

tmpfs/dev/sda2/dev/sdb5/dev/sdb1/dev/sda1

tmpfs

[root@localhost~]# df -h|awk '{print $1}'文件系统/dev/sda5

devtmpfs

tmpfs

tmpfs

tmpfs/dev/sda2/dev/sdb5/dev/sdb1/dev/sda1

tmpfs[root@localhost~]# df文件系统 1K-块 已用 可用 已用%挂载点/dev/sda5 16558080 1443112 15114968 9% /devtmpfs490168 0 490168 0% /dev

tmpfs499968 0 499968 0% /dev/shm

tmpfs499968 6872 493096 2% /run

tmpfs499968 0 499968 0% /sys/fs/cgroup/dev/sda2 2086912 33160 2053752 2% /home/dev/sdb5 1998672 6144 1871288 1% /disk5/dev/sdb1 999320 2564 927944 1% /disk1/dev/sda1 201380 116576 84804 58% /boot

tmpfs99996 0 99996 0% /run/user/0[root@localhost~]# df -h|grepsda5/dev/sda5 16G 1.4G 15G 9% /[root@localhost~]# df -h|grep sda5|awk '{print $5}'

9%[root@localhost~]# df -h|grep sda5|awk '{print $5}'|cut -d % -f1  注释:cut命令的-f选项后的列序号和f之间可以无空格9[root@localhost~]# df -h|grep sda5|awk '{print $5}'|cut -d % -f 1

9[root@localhost~]# df -h|grep sda5|awk 'BEGIN{print "This is a title:"}{print $5}'|cut -d % -f 1This is a title:9[root@localhost~]# df -h|grep sda5|awk '{print "This is a title:"}{print $5}'|cut -d % -f1

This is a title:9[root@localhost~]# awk '{print $1}' /etc/passwd  注释:awk的默认分隔符是空格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/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-bus-proxy:x:999:997:systemd

systemd-network:x:192:192:systemd

dbus:x:81:81:System

polkitd:x:998:996:User

libstoragemgmt:x:997:995:daemon

abrt:x:173:173::/etc/abrt:/sbin/nologin

rpc:x:32:32:Rpcbind

tss:x:59:59:Account

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated

ntp:x:38:38::/etc/ntp:/sbin/nologin

chrony:x:996:994::/var/lib/chrony:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

xiongjiawei:x:1000:1000:xiongjiawei:/home/xiongjiawei:/bin/bash

qiaofeng:x:1001:1001::/home/qiaofeng:/bin/bash

yangguo:x:1002:1002::/home/yangguo:/bin/bash

st:x:1003:1004::/home/st:/bin/bash

user1:x:1004:1005::/home/user1:/bin/bash

[root@localhost~]# awk '{FS=":"}{print $1}' /etc/passwdroot:x:0:0:root:/root:/bin/bash  注释:设置分隔符为冒号:后第一行并未处理,因为awk命令的执行是首先读取第一行

bin

daemon

admlp

syncshutdown

halt

mail

operator

gamesftpnobody

systemd-bus-proxy

systemd-network

dbus

polkitd

libstoragemgmt

abrt

rpc

tss

postfix

sshd

ntp

chrony

tcpdump

xiongjiawei

qiaofeng

yangguo

st

user1

[root@localhost~]# awk 'BEGIN{FS=":"}{print $1}' /etc/passwd注释:加BEGIN后就不会首先读取第一行,而是首先设置分隔符

root

bin

daemon

admlp

syncshutdown

halt

mail

operator

gamesftpnobody

systemd-bus-proxy

systemd-network

dbus

polkitd

libstoragemgmt

abrt

rpc

tss

postfix

sshd

ntp

chrony

tcpdump

xiongjiawei

qiaofeng

yangguo

st

user1

[root@localhost~]# awk 'END{print "The end!"}BEGIN{FS=":"}{print $1}' /etc/passwd注释:有BEGIN就有END,在命令动作中的顺序无所谓

root

bin

daemon

admlp

syncshutdown

halt

mail

operator

gamesftpnobody

systemd-bus-proxy

systemd-network

dbus

polkitd

libstoragemgmt

abrt

rpc

tss

postfix

sshd

ntp

chrony

tcpdump

xiongjiawei

qiaofeng

yangguo

st

user1

The end![root@localhost~]# cattestfile

no. name sex score age comment1 zhansan m 88 18student2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# awk '$4>88{print $2}'testfile  注释:根据条件执行动作

name

li:si

sed

sed [选项] '[动作]' 文件名

选项:

-n 只输出sed处理过的行

-i 修改原文件

-e 执行多条sed动作

动作:

p 打印,例2p打印第2行,2,3p打印第2、3行

d 删除,例‘3,4d',不输出第3、4行

a 追加,例'2a Welcome to China',在第2行后换行追加Welcom to China

i 插入,例'2i Welcom to China',在第2行前插入Welcom to China,即在第1行后换行插入Welcom to China

c 行替换

s 字符串替换

[root@localhost ~]# cattestfile

no. name sex score age comment1 zhansan m 88 18student2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# sed '2p'testfile  注释:不加选项-n时即输出原文件又输出经过处理的结果

no. name sex score age comment1 zhansan m 88 18student1 zhansan m 88 18student2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# sed -n '2p'testfile1 zhansan m 88 18student

[root@localhost~]# sed -n '2,3p'testfile1 zhansan m 88 18student2 li:si f 89 20member

[root@localhost~]# df -h|sed -n '2p'

/dev/sda5 16G 1.4G 15G 9% /[root@localhost~]# sed '3,4d'testfile

no. name sex score age comment1 zhansan m 88 18student

[root@localhost~]# df -h|sed '2a This is added words'文件系统 容量 已用 可用 已用%挂载点/dev/sda5 16G 1.4G 15G 9% /This is added words

devtmpfs 479M0 479M 0% /dev

tmpfs 489M0 489M 0% /dev/shm

tmpfs 489M6.8M 482M 2% /run

tmpfs 489M0 489M 0% /sys/fs/cgroup/dev/sda2 2.0G 33M 2.0G 2% /home/dev/sdb5 2.0G 6.0M 1.8G 1% /disk5/dev/sdb1 976M 2.6M 907M 1% /disk1/dev/sda1 197M 114M 83M 58% /boot

tmpfs 98M0 98M 0% /run/user/0[root@localhost~]# df -h|sed '2i This is added words'文件系统 容量 已用 可用 已用%挂载点

This is added words/dev/sda5 16G 1.4G 15G 9% /devtmpfs 479M0 479M 0% /dev

tmpfs 489M0 489M 0% /dev/shm

tmpfs 489M6.8M 482M 2% /run

tmpfs 489M0 489M 0% /sys/fs/cgroup/dev/sda2 2.0G 33M 2.0G 2% /home/dev/sdb5 2.0G 6.0M 1.8G 1% /disk5/dev/sdb1 976M 2.6M 907M 1% /disk1/dev/sda1 197M 114M 83M 58% /boot

tmpfs 98M0 98M 0% /run/user/0[root@localhost~]# df -h|sed '2i This is \added words'文件系统 容量 已用 可用 已用%挂载点

This is dded words/dev/sda5 16G 1.4G 15G 9% /devtmpfs 479M0 479M 0% /dev

tmpfs 489M0 489M 0% /dev/shm

tmpfs 489M6.8M 482M 2% /run

tmpfs 489M0 489M 0% /sys/fs/cgroup/dev/sda2 2.0G 33M 2.0G 2% /home/dev/sdb5 2.0G 6.0M 1.8G 1% /disk5/dev/sdb1 976M 2.6M 907M 1% /disk1/dev/sda1 197M 114M 83M 58% /boot

tmpfs 98M0 98M 0% /run/user/0[root@localhost~]# df -h|sed '2i This is \

> added words'

文件系统 容量 已用 可用 已用%挂载点

This is

added words/dev/sda5 16G 1.4G 15G 9% /devtmpfs 479M0 479M 0% /dev

tmpfs 489M0 489M 0% /dev/shm

tmpfs 489M6.8M 482M 2% /run

tmpfs 489M0 489M 0% /sys/fs/cgroup/dev/sda2 2.0G 33M 2.0G 2% /home/dev/sdb5 2.0G 6.0M 1.8G 1% /disk5/dev/sdb1 976M 2.6M 907M 1% /disk1/dev/sda1 197M 114M 83M 58% /boot

tmpfs 98M0 98M 0% /run/user/0[root@localhost~]# sed '2c deleted...'testfile

no. name sex score age comment

deleted...2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# sed '2c deleted...\

> new lines!!!'testfile

no. name sex score age comment

deleted...

new lines!!!

2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# cattestfile

no. name sex score age comment1 zhansan m 88 18student2 li:si f 89 20member3 wangwu m 87 22teacher[root@localhost~]# sed '3s/li:si/lisi/g'testfile   注释:2表示行序号,不加数字表示替换整个文档

no. name sex score age comment1 zhansan m 88 18student2 lisi f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# cattestfile

no. name sex score age comment1 zhansan m 88 18student2 li:si f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# sed -i '3s/li:si/lisi/g'testfile  注释:-i选项表示修改原文件,此选项有一定风险性,慎用,如果需要修改文件内容建议使用vim

[root@localhost~]# cattestfile

no. name sex score age comment1 zhansan m 88 18student2 lisi f 89 20member3 wangwu m 87 22teacher

[root@localhost~]# sed -e '2s/zhansan/sanzhan/g;3s/li/Li/g'testfile

no. name sex score age comment1 sanzhan m 88 18student2 Lisi f 89 20member3 wangwu m 87 22 teacher

sed 分隔符打印_字符截取:cut,格式化输出:printf,字符截取:awk,文件或命令输出编辑:sed...相关推荐

  1. sed 分隔符打印_关于正则表达式:使用sed更改CSV分隔符

    我有一个CSV文件,看起来像: 1,3,"3,5",4,"5,5" 现在,我想将所有","(而不是引号)更改为";" 加 ...

  2. sed 分隔符打印_sed或awk可以使用NUL字符作为记录分隔符吗?

    我有一个NUL定界输出,来自以下命令: some commands | grep -i -c -w -Z 'some regex' 输出包含以下格式的记录: [file name]\0[pattern ...

  3. 在dmesg中打印_讲解Linux下的Dmesg命令:格式化及过滤dmesg输出、清除环形缓冲区...

    在本文中,我们将介绍Linux下dmesg命令的基础知识.Linux内核是操作系统的核心,它控制对系统资源(例如CPU.I/O设备.物理内存和文件系统)的访问,在引导过程中以及系统运行时,内核会将各种 ...

  4. sed 删除某一行_Linux常用命令三剑客之sed,您真的会用吗?

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解Linux系统中的sed命令的作用与使用案 ...

  5. c语言输出字符串用什么符号,C语言中输出字符串用什么符号_后端开发

    php中字符串如何转16进制_后端开发 ​在php中可以使用"bin2hex()"函数将字符串转换成16进制,该函数用于字符串转换成16进制,其语法是"bin2hex($ ...

  6. 输入一串字符,并判断其中英文字符和数字字符的个数——C语言实现(C语言练习)

    先看程序运行的结果,(文末有该程序的完整代码) 1.先写好框架 #include<stdio.h> void main() {} 2.再定义所需要的变量 char str;//定义一个字符 ...

  7. sql 插入新数据 如何处理等字符_条码打印软件之如何在条码数据插入字符而不被扫描...

    有的客户在制作条形码的时候可能会想在条码内容中插入字符,但是,又希望插入的字符不被扫描出来,那么在条码打印软件中是如何设置的呢?接下来小编就给大家简单介绍下,条码打印软件中如何在条码内容插入字符,而又 ...

  8. java 实现打印条形码_条码打印软件中如何设置条形码下面的字符间距?

    条形码有两部分组成,上面是黑白条图案,用于扫描设备的识别,下面是条形码数据,方便在没有扫描设备的情况下可以手动去搜索相关的信息.一般用条码打印软件制作条形码,下面的条形码数据间距是自动生成的,而在条码 ...

  9. Linux | Shell 学习笔记(二)Shell 流程控制 if、case、for、while| read读取输入 | 函数的使用 | cut、sed、awk、sort命令 +Demo

    文章目录 参考资料 运行环境 一.流程控制 1.1 if 判断 1.2 case 语句 1.3 for 循环 1.4 while 循环 二. read 读取控制台输入 三.函数 3.1 系统函数 ba ...

最新文章

  1. select 下拉菜单Option对象使用add(elements,index)方法动态添加
  2. 为 Virtual SAN 就绪节点和就绪块做好准备
  3. 大数据量表中,增加一个NOT NULL的新列
  4. 关于MySQL count(distinct) 逻辑的另一个bug_
  5. Ardino基础教程 1_让Arduino说出HelloWorld
  6. Microsoft .NET:Microsoft .NET之.net4.5.1简介、安装、使用方法之详细攻略
  7. 03-JDBC学习手册:JDBC中几个重要接口和异常处理
  8. php 提取登录QQ,php QQ登录
  9. @codeforces - 1106F@ Lunar New Year and a Recursive Sequence
  10. 很现实、很暴力的面试法则 —— 来自招聘官的自述
  11. Python 装饰器初探
  12. web通讯录之登录注册界面
  13. 5种速成数据分析方法
  14. Mesos和Marathon下容器无法正常部署可能的原因
  15. matlab-模拟退火算法
  16. SqlHelper方法
  17. 阵处理与波束形成学习心得(二)
  18. java跨站攻击_安全测试-跨站脚本攻击(xss)
  19. 淘宝店铺装修_黑色店铺模板如何搭配?
  20. 全球最小的一款P2P软件——eMuleBT软件框架分析

热门文章

  1. wegame地下城不显示服务器,在电脑端wegame看不到旭旭宝宝?来吧我教你! - 地下城与勇士掌游宝...
  2. mysql还要mysqldump的备份文件到指定数据库
  3. linux fstab 启动,修改-etc-fstab后Linux不能启动
  4. creator图片循环显示_Cocos creator 游戏背景循环滚动--Javascript编写
  5. java 用properties文件配置spring数据源,用spring的JdbcTemplate的queryForList查数据
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的宝妈购母婴用品商城
  7. ubuntu18.04 中个性化配置vim方法
  8. 1.1.29 加入项目符号后换行文字未对齐
  9. django项目验证码(PIL库实现)
  10. python中生成器的两段代码