Linux字符串截取和处理命令 cut、printf、awk、sed、sort、wc
1. cut [选项] 文件名
-f 列号 #提取第几列(分隔符默认为\t)
-d 分隔符 #指定分隔符
例如:cut -f 2 a.txt #截取文件a.txt内容的第二列(列号从1开始)
cut -f 2,4 a.txt #截取文件a.txt内容的第二列和第四列
cut -d ":" -f 1,3 /etc/passwd #截取文件passwd文件的第1列和第三列,以:分割取其中的第一列和第三列
2. printf '输出类型 输出格式' 输出内容
输出类型:
%ns 输出字符串,n是数字,指代输出几个字符
%ni 输出整数。n是数字,指代输出几个数字
%m.nf 位数和小数位数。例如:%8.2f 代表输出8位数,其中2位是小数,6位是整数
输出格式:
\a 输出警告声音
\b 输出退格键,也就是BackSpace键
\f 消除屏幕
\n 换行
\r 回撤
\t 水平制表符
\v 垂直制表符
举例:
printf '%s %s %s\n' 1 2 3 4 5 6 #表示每三个位一组输出,并加换行符
printf '%s\t%s\t%s\t' $(cat a.txt) #表示以4列的形式输出
3. awk '条件1{动作1}条件2{动作2}...' 文件名
awk '{printf $2 "\t" $6 "\n"}' a.txt #输出文件a.txt的第二列和第6列
4. sed [选项] '[动作]' 文件名 #说明:动作必须用引号引起来
选项:
-n 一般sed命令会把所有数据都输出到屏幕。如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。
-e 允许对输入数据应用多条sed命令编辑
-i 用sed的修改结果直接修改读取的数据的文件,而不是修改屏幕输出
动作:
a\ 追加,在当前行后添加一行或多行。添加多行时除最后一行外,每行末尾需要用"\"代表数据未完结。
c\ 行替换,用c后面的字符替换原数据行,替换多行时除最后一行外,每行末尾需要用"\"代表数据未完结。
i\ 插入,在当前插入一行或多行,插入多行时,除最后一行外每行末尾需用"\"代表数据未完结。
d 删除,删除指定的行
p 打印,输出指定的行
s 字符串替换,用一个字符串替换另外一个字符串。格式为"行范围 s/旧字符串/新字符串/g"
sed可以接收管道符的输出结果
举例:
sed '2p' a.txt #输出第2行后,又把所有内容输出一遍
sed -n '2p' a.txt #只输出第二行
sed '2,4d' a.txt #删除第2到4行,只删除屏幕输出,不会更改文件本身的内容
sed '2a hello' a.txt #在第二行插入一行 hello
sed '2i hello' \
word' a.txt #在第二行前插入多行 hello 一行 word一行
sed '2c no person' a.txt #用no person 替换第二行
sed '4s/99/55/g' a.txt #把第4行的99替换为55
sed -i '4s/99/55/g' a.txt #把第4行的99替换为55,修改的是原文件而不是屏幕输出
sed -i 's/99/55/g' a.txt #s前不加行号时表示替换整个文件中匹配的字符串
sed -e 's/Liming//g;s/Gao//g' a.txt #-e表示允许多个条件执行,把Liming替换为空,把Gao替换为空
5. sort [选项] 文件名 #排序
选项:
-f 忽略大小写
-n 以数值型进行排序,默认使用字符串型排序
-r 反向排序
-t 指定分隔符,默认分隔符是制表符
-k n[,m] 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)
6. wc [选项] 文件名 #统计
选项:
-l 只统计行数
-w 只统计单词数
-m 只统计字符数
Linux字符串截取和处理命令 cut、printf、awk、sed、sort、wc的更多相关文章
- [Shell]字符截取命令:cut, printf, awk, sed
------------------------------------------------------------------------------------------- [cut命令] ...
- cut printf awk sed grep笔记
名称 作用 参数 实例 cut 截取某列,可指定分隔 -f 列号 -d 分隔符 cut -d ":" -f 1, 3 /etc/passwd 截取第一列和第三列 printf pr ...
- Linux字符串截取命令
一.简单截取 假设有变量 var=http://www.google.com/test.htm 1. # 号截取,删除左边字符,保留右边字符.echo ${var#*//}其中 var 是变量名,# ...
- Linux查找命令:grep,awk,sed
grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
- 字符截取:cut,格式化输出:printf,字符截取:awk,文件或命令输出编辑:sed
cut 选项 文件名 -f 列号 提取第几列 -d 分隔符 指定分隔符把行分成多列 不能以空格为分隔符. [root@localhost ~]# cat testfile no. name sex s ...
- 【Shell】shell截取字符串方式(cut、awk、sed命令)
1.cut -b :以字节为单位进行分割.这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志.-c :以字符为单位进行分割. -d:自定义分隔符,默认为制表符. -f:与-d一起使用,指定显示 ...
- Linux 的shell 字符串截取很有用。有八种方法。
一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1 # 号截取,删除左边字符,保留右边字符. echo ${va ...
- linux的string操作(字符串截取,长度计算)
按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...
随机推荐
- Ax 导出EXCEL给范围内的每个单元格加边框
1. 首先在Class\SysExcelRange加画边框的方法 思路用EXCEL录宏的功能得到给一批单元格画格子的VBA代码,在AX将对象转为COM对象,基本VBA代码也能装为AX内能用的内容. p ...
- 第一个ruby程序
老实说不是很喜欢去讨论ruby和python的对比,似乎总是把两个语言放在对立的位置上,我觉得没有必要,同样是动态语言,同样是解释型脚本语言,很多特性都是互相影响的,语言本身也在不断进化,我们更应该关 ...
- (分享)FreeVideo1.6.1 VIP视频播放器(支持下载)
软件名字:FreeVideo 版 本 号 :v 1.6.1 开发语言:易语言 压缩加壳:VMP 3.0 beta 皮 肤:易简约定制版(白色) 模块使用:乐易.精易.皮肤 主要技术:其实没啥 ...
- archlinux配置答疑
Q: chinese can not appear in my firefox and terminal rightly A: pacman -S wqy-microhei Q: install pi ...
- Geometry Stage in Rendering pipeline (读书笔记2 --- Real-Time rendering)
Geometry Stage一般包含下面几个阶段 1. Model & View Transform(模型和视图变换) --- 模型空间--> 世界空间 模型变换:每个模型经过模型变换来 ...
- maven出现 -Dmaven.multiModuleProjectDirectory system propery错误
1.使用myeclipse10整合maven插件时出现错误: -Dmaven.multiModuleProjectDirectory system propery is not set. Check ...
- MySQL索引原理及慢查询优化(转)
add by zhj:这是美团点评技术团队的一篇文章,讲的挺不错的. 原文:http://tech.meituan.com/mysql-index.html MySQL凭借着出色的性能.低廉的成本.丰 ...
- Python: 列表的基本用法
列表是可变的,可以改变的序列,它能够保存任何数据类型. >>> list = [] #定义一个空列表>>> list.append(1) ...
- TSP问题——动态规划
Traveling Salesman Problem Description: Time Limit: 4sec Memory Limit:256MB 有编号1到N的N个城市,问从1号城市出发, ...
- ubuntu 安装 git & smartgit
1. 安装 git # sudo apt-get update# sudo apt-get install git 2. 配置 # git config --global user.name &q ...