字符截取命令

 字符截取命令一

cut格式:cut [选项] 文件名参数:

-f 列号: 提取第几列

-d 分隔符: 按照指定分隔符分割列

注意,中间是tab制表符,而不是空格,否则cut命令是没法正确截取的。

cut -f 2 student.txt:提取第二列。

cut -f 2,3 student.txt:提取第二列和第三列。

二、printf命令

在学习awk命令之前,我们先学习printf,格式化输出命令。

格式:printf '输出类型输出格式' 输出内容输出类型:

%ns:输出字符串。n是数字指代输出几个字符。

%ni:输出整数。n是数字指代输出几个数字。

%m.nf:输出浮点数。m和n是数字,指代输出的整数 位数和小数位数。

输出格式:

\a: 输出警告声音

\b: 输出退格键,也就是Backspace键

\f: 清除屏幕

\n: 换行

\r: 回车,也就是Enter键

\t: 水平输出退格键,也就是Tab键

\v: 垂直输出退格键,也就是Tab键

printf '%s' $(cat student.txt):不调整输出格式

三、awk命令格式:

awk ‘条件1{动作1} 条件2{动作2}…’

 文件名条件(pattern):一般使用关系表达式作为条件。x > 10 :判断变量 x是否大于10x>=10 :大于等于x

首先我们还是用上面的文件为例,我们提取第二列的姓名和第六列的成绩平均值。awk '{printf $2"\t"$6"\n"}' student1.txt

其中$2表示第二列,$6表示第六列。

我们知道df -h命令是查看当前系统的磁盘文件占用状况的:

我们可以自己判断出来根分区是挂载在cl-root上的,我们可以获取这一行:grep cl-root;然后这个时候我们要用awk命令来获取第五列,也就是上面的百分比数字:awk '{print $5}';最后我们可以用分隔符的方式巧妙的去掉百分号:cut -d "%" -f 1我们把上面的操作用管道符连接起来,得到:

df -h | grep sda3 |awk '{print $5}' | cut -d "%" -f 1

df -h | grep sda3 |awk '{print $5}' | cut -d "%" -f 1

四、sed命令

sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。

sed主要是用来将数据进行选取、替换、删除、新增的命令。

格式:sed [选项] '[动作]'

 文件名选项:-n: 一般sed命令会把所有数据都输出到屏幕 , 如果加入此选择,则只会把经过sed命令处 理的行输出到屏幕。

-e: 允许对输入数据应用多条sed命令编辑

-i: 用sed的修改结果直接修改读取数据的文件, 而不是由屏幕输出动作:

a \: 追加,在当前行后添加一行或多行。添加多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。

c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最 后一行外,每行末尾需用“\”代表数据未完结。

i \: 插入,在当期行前插入一行或多行。插入多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。

d: 删除,删除指定的行。

p: 打印,输出指定的行。

s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)。

1. 行数据操作

不加-n参数,我们可以试一下:

sed '2p' student.txt

我们看到,他只是把第二行重复打印了一遍,整个文档也打印了一遍。

我们只想得到第二行的数据,就可以加上-n参数:

sed -n '2p' student.txt

 我们也可以删除第二行到第四行的数据,但不修改文件本身:

sed '2,4d' student.txt

在第二行后追加hello:

sed '2a hello' student.txt

2. 字符替换操作

在第三行中,把99换成100:

sed '3s/99/100/g' student.txt

但是以上所有我们尝试的操作都是在修改命令输出的结果,而并没有影响原来的文件本身,我们可以加入-i参数来保存我们的修改:

sed -i '3s/99/100/g' student.txt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值