linux操作字符串、文本常用命令总结

大括号扩展{}

逐个扩展

echo {a,1,4}b
# ab 1b 4b

增量扩展

echo {1..5}b 
# 1b 2b 3b 4b 5b

上面间隔为1,其实还可以指定增量间隔
echo {1..10..2}b
# 1b 3b 5b 7b 9b

对列进行处理 cut

cut [option] filename

-d 指定分隔符,默认为制表符
-f 指定需要提取的字段编号,从1开始,范围表示如下:

N 只有第N项
N- 从第N项一直到行尾
N-M 从第N项到第M项(包括M)
-M 从一行的开始到第M项(包括M)

类似,-b、-c、-f分别表示字节、字符、字段(即byte、character、field)

对行进行处理 sed

sed [option] command filename

-n 只输出经过sed处理的那一行,默认全部输出
-r :使用正则模式匹配
-i :直接修改文件内容

command 形式: [n1[,n2]] [pattern] function
n1, n2 :代表选择进行动作的行数
pattern:用正则模式匹配,必须结合-r选项

function:
a :追加 ,向匹配行后面插入内容, a 的后面接字串
c :更改 ,更改匹配行的内容,c 的后面接字串
d :删除 ,删除匹配的内容
i :插入,向匹配行前插入内容,i 的后面接字串
p :打印,打印出匹配的内容,通常 与-n 一起使用
s :替换,替换掉匹配的内容
常用的比如:

# 取文件中50-100行(两边都包括)
sed -n  50,100p filename > newfile

#  替换
sed  s/要被取代的字串/新的字串/g

字符串搜索 grep

grep option  command  filename

-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即找 没有搜索字符串的行

其中,command 可以是具体的搜索字符串,也可以是正则表达式(需要用引号引起来),常用的有:

1.利用[]搜索集合字符,[] 表示其中的某一个字符 ,例如[ade] 表示a或d或e

2.利用[] 来表示范围,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z] 则是大写字母们。[a-zA-Z0-9]表示所有数字与英文字符

3.^ 表示行的开头,$表示行尾,^ $ 就表示空行,比如,

# 搜索以小写字母开头的行
grep "^[a-z]" filename

# 搜索末尾是.的行,. 是正则表达式的特殊符号,所以要用\转义
grep "\.$" filename  # 

# 去除空白行和行首为 #的行
grep -v  "^$" filename | grep -v ^#

查看文件数量

1、如果只是想得到当前目录下(不包括子目录)的相关文件时用

ll | grep -c "^-"

2、如果想得到当前目录下,包括子目录中的相关文件时用

find ./ -type f | wc -l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值