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的更多相关文章

  1. [Shell]字符截取命令:cut, printf, awk, sed

    ------------------------------------------------------------------------------------------- [cut命令] ...

  2. cut printf awk sed grep笔记

    名称 作用 参数 实例 cut 截取某列,可指定分隔 -f 列号 -d 分隔符 cut -d ":" -f 1, 3 /etc/passwd 截取第一列和第三列 printf pr ...

  3. Linux字符串截取命令

    一.简单截取 假设有变量 var=http://www.google.com/test.htm 1. # 号截取,删除左边字符,保留右边字符.echo ${var#*//}其中 var 是变量名,#  ...

  4. Linux查找命令:grep,awk,sed

    grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

  5. 字符截取:cut,格式化输出:printf,字符截取:awk,文件或命令输出编辑:sed

    cut 选项 文件名 -f 列号 提取第几列 -d 分隔符 指定分隔符把行分成多列 不能以空格为分隔符. [root@localhost ~]# cat testfile no. name sex s ...

  6. 【Shell】shell截取字符串方式(cut、awk、sed命令)

    1.cut -b :以字节为单位进行分割.这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志.-c :以字符为单位进行分割. -d:自定义分隔符,默认为制表符. -f:与-d一起使用,指定显示 ...

  7. Linux 的shell 字符串截取很有用。有八种方法。

    一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1  # 号截取,删除左边字符,保留右边字符. echo ${va ...

  8. linux的string操作(字符串截取,长度计算)

    按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...

  9. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

    在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...

随机推荐

  1. MVC中Control和View之间数据传递的方式

    1:ViewBag和ViewData 具体区别不做讨论,本处只演示ViewData的具体示例: Controler代码:ViewData["Employee"] = emp; Vi ...

  2. js和java MD5加密

    项目中用到js MD5加密和后台java MD5加密,刚开始加密后两个不一致,网上找了好久终于找到一个啦,记下来: md5.js /* * A JavaScript implementation of ...

  3. VUE 入门基础(2)

    二,起步 引用方式可以使用  vue-cli <script src="https://unpkg.com/vue/dist/vue.js"></script&g ...

  4. html5 01

    (1)Html 5的概念 能做什么? 为什么学习? HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML ...

  5. Could not find the following Boost libraries: boost_python3

    安装Boost.NumPy时报错: CMake Error at /usr/share/cmake/Modules/FindBoost.cmake:1794 (message): Unable to ...

  6. Visual Studio 2013 always switches source control plugin to Git and disconnect TFS

      A few days ago, I've been facing a strange behavior with Visual Studio 2013.   No matter what solu ...

  7. JavaScript编程总结

    1.   JS加载放在底部 2.   JS和CSS合并,一个页面加载的JS和CSS越少越好 3.   尽量使用变量,页非全局变量. 4.   脚本和DOM交互越少越好,尽量批量修改. 5.   批量修 ...

  8. avalon全选效果分析讲解

    全选功能就是 1.点击全选控制循环元素是否选中.(点击全选,下面的所有元素选中,再次点击 所有元素取消选中.) 2.点击循环元素控制全选.(如果当前元素是未选中状态则全选不选中,如果当前元素是选中状态 ...

  9. 谈谈对HTML语义化的理解

    什么是HTML语义化? HTML标签可以分为有语义的标签,和无语义的标签.比如table表示表格,form表示表单,a标签表示超链接,strong标签表强调.无语义标签典型的有<div>, ...

  10. 安装ANDROID5.0 ,adb连接不上

    一.ADB PC端需要换成5.0 的版本 二.是4.3默认端口5555,但是现在没有连接上.即绑定端口. setprop service.adb.tcp.port 5555 stop adbd sta ...