标签:提取 删除文件 shell 自定义 第一个 字段 bash 数据 cas
Shell工具
cut:可以切割提取指定列\字符\字节的数据
cut可以将文本按列进行划分的文本处理,cut命令逐行度入文本,然后按列划分字段并进行提取,输出等操作
选项参数:
-f 提取范围 列号,获取第几列
-d 自定义分隔符 自定义分隔符,默认为制表符
-c 提取范围 以字符为单位进行分割
-b 以字节为单位进行分割,这些字节位置将忽略多字节字符边界,除非也指定了-n标志
-n 与-b选项连用,不分割多字节字符
提取范围:
n-
n-m
-m
n1,n2,...
cut1.txt:
AA it ll 11 xx
BB itc 22 xxx
CC shell 33 xxx
DD itk 44 xxxx
//按照" "分割提取第一列和第三列
cut cut1.txt -d " " -f 1,3
AA it
BB itc 2
CC she
DD itk
//按照" "分割提取第二列之后
cut cut1.txt -d " " -f 2-
it ll 11 xx
itc 22 xxx
shell 33 xx
itk 44 xxxx
//提取前两个字符
cut cut1.txt -c 1-2
AA
BB
CC
DD
//提取前三个字节(utf-8 n一个字母占一个字节,一个汉字占三个字节)
echo "abc长治" | cut -b 1-3
结果:abc
//-n多字节不被截断
echo "abc长治" | cut -nb 1-3
结果:abc长
//将有itk的行按" "切割,提取第三列(提取指定单词数据)
cat cut1.txt | grep itk | cut -d " " -f 3
//获取bash进程信息
ps -aux | grep bash
//切割提取bash进程的PID号(head -n 1:第一行)
ps -aux | grep bash | head -n 1 | cut -d " " -f 8
//切割提取IP地址
ifconfig | broadcast | cut -d " " -f 10
sed:编辑文件
sed.txt
ABC
itk itk
123
itk
向文件中添加数据:
//在第三行后添加数据(指定行号添加数据)
sed -i ‘3hello‘ sed.txt (-i:插入)
ABC
itk itk
123
3hello
itk
//"3i"->在第三行前添加hello数据
sed -i ‘3ihello‘ sed.txt(i:目标行前一行)
//含有"itk"行的前一行添加hello数据指定内容后添加数据
sed ‘/itk/ihello‘ sed.txt
//含有"itk"行的后一行添加hello数据指定内容后添加数据
sed ‘/itk/ahello‘ sed.txt(a:目标行后一行)
//在最后一行前添加数据($->代表最后一行)
sed ‘$ahello‘ sed.txt
//在最后一行后添加数据
sed ‘$ihello‘ sed.txt
删除文件中的数据:
//删除第二行数据(d:删除)
sed ‘2d‘ sed.txt
//从第一行开始删除,每隔两行就删掉一行(删除奇数行数据)
sed ‘1~2d‘ sed.txt
//删除前三行数据(删除指定范围的多行数据)
sed ‘1,3d‘ sed.txt
//删除指定范围取反的多行数据
sed ‘1,3!d‘ sed.txt
//删除最后一行数据
sed ‘$d‘ sed.txt
//删除匹配"itk"的行
sed ‘/itk/d‘ sed txt
//删除匹配行到最后一行
sed ‘/itk/,$d‘ sed.txt
//删除匹配行及其后面一行
sed ‘/itk/,+1d‘ sed txt
//删除不匹配的行(删除没有itk或者123的行)
sed ‘/itk\|123/!d‘ sed.txt
更改文件中的数据:
//将文件第一行数据修改为hello(c:修改)
sed ‘1chello‘ sed.txt
//把itk修改为hello
sed ‘/itk/chello‘ sed.txt
//将最后一行修改为hello($:最后一行)
sed ‘$chello‘ sed.txt
//把第一个itk替换成hello(s:替换)
sed ‘s/itk/hello/‘ sed.txt
//将全局的itk替换成hello(g:全局)
sed ‘s/itk/hello/g‘ sed.txt
//把第二个itk替换成hello
sed ‘s/itk/hello/2‘ sed.txt
//将修改那行写入文件(w:写入文件)
sed ‘s/itk/hello/2w sed2.txt‘ sed.txt
//只输出匹配那行(-n:查询 p:打印)
sed -n ‘s/itk/hello/2pw sed2.txt‘ sed.txt
//在有i的行里,替换该行中t后面的所有内容(正则表达式的匹配替换)
sed ‘/i/s/t.*//‘ sed.txt
//每行末尾拼接test(&:拼接)
sed ‘s/$/& test/‘ sed.txt
//每行行首添加注释
sed ‘s/^/&#/‘ sed.txt
查询文件或管道中的数据:
//查询含有itk的行的数据
sed -n ‘/itk/p‘ sed.txt
//管道过滤查询
ps -aux | grep sshd
ps -aux | sed -n ‘/sshd/p‘
多个sed命令执行:
//删除第一行并且将itk替换成oi
sed -e ‘1d‘ -e ‘s/itk/oi/g‘ sed.txt
sed ‘1d;s/itk/oi/g‘ sed.txt
标签:提取 删除文件 shell 自定义 第一个 字段 bash 数据 cas
原文地址:https://www.cnblogs.com/fddd/p/14687472.html