Linux echo, sort, sed 等一些命令总结
linux echo, sort, sed是初学linux shell script 的一些常用的命令。基本上来说,如果能够掌握了这些命令,我们就能写出一些不错的linux脚本。以下是我遇到的以下常用的echo,sort, sed等命令的一些应用;
1. echo -e: BW="f25\nf50\nf75\nf100\n";
如果直接echo $BW, 结果是f25\nf50\nf75\nf100\n。所以我们必须加上-e选项才能实现换行的目的,即echo -e $BW
2. sort 排序: BW=`echo -e $BW|sed 's/f/f /g'|sort -ugk2|sed 's/ //g'`;
sed 's/f/f /g': 人为制造一个分隔符“ ”出来
sort -u:清除重复行
-g: 按照数字大小排序: 一般来说, 假如有五个数: 1 3 11 12 21, 它会按照第一个数的大小来排,即1 11 12 21 3, 加-g 或-n 之后,就会正常排序, 即1 3 11 12 21
-k: 一般和-t一起用, -t 是分隔符,默认为空格,sort-ugk2 其实是 sort -u -t " " -k2 -g。其中-k2, 是指按照分割符后面的值得大小排序
sed 's/ //g': 删除分隔符
Note: sort [-bcfMnrtk][源文件][-o 输出文件]
补充说明:sort可针对文本文件的内容,以行为单位来排序。
参 数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-u 除去重复行
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。compare according to string numerical value
-g compare according to general numerical value
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-R random排序
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
参考:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html
3. sed: cat Runlist.txt | sed 's/^#.*//g'|sort -R;
假如Runlist.txt里面的内容是:
test_short/test_UL_CellID
test_short/test#_UL_DL_cfg .2
test_short/test_UL_MCS
#test_short/test_UL_RNTI in the adb list
cat Runlist.txt | sed 's/^#.*//g'|sort -R: 那么这句话是把以#开头的一行删除。
test_short/test_UL_CellID
test_short/test#_UL_DL_cfg .2
test_short/test_UL_MCS
cat Runlist.txt | sed 's/#.*//g'|sort -R: 那么这句话是把以#后面的内容删除。
test_short/test_UL_CellID
test_short/test_UL_MCS
test_short/test#
cat Runist.txt | sed '/#/d': 删除#出现的那一行
test_short/test_UL_CellID
test_short/test_UL_MCS
3a. 匹配数据,然后进行操作
只需要在上述的基础上加上正则匹配
sed "/匹配的模式/处理的方式" file.txt
sed "/^root/d" file.txt 对开始有root的删除
cat Runist.txt | sed '/#/s/test_short/bugs/g/': 找到#出现的那一行,然后用bugs替换test_short
3b. 一个比较有趣的例子: 如何替换\n也就是把所有的行都归为一行
我们可以用tr来代替sed去做这件事情: tr "\n" " ": 用空格把 \n换行替代
Note: sed [-nefr] [动作] 文件
参数:
-n 安静模式,在sed处理的时候,所有来自STDIN的数据都会被输出到终端,加上-n会只输出处理的哪行
-e 直接在命令列上进行sed动作编辑
-f 直接将sed的动作写在文件内
-r sed动作支持延伸的正则表达(默认只是基础正则)
-i 直接修改文件内容(慎用,尤其是用系统文件做练习的时候)非常有用,不加这个选项,只会在屏幕中print出来
动作:
a append:增加,在当前行的下一行增加
c :取代,取代n1到n2之间的行
d delete:删除
i 插入,目前行的上一行插入
p 打印,常常与-n使用
s 取代,s/old/new/g
http://blog.csdn.net/hello_hwc/article/details/40118129
Linux echo, sort, sed 等一些命令总结的更多相关文章
- Linux之 sort,uniq,cut,wc命令详解
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
- linux awk,sort,uniq,wc,cut命令详解
1.awk awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 $ 表示当前行 $ 表示第一列 NF 表示一共有多少列 $NF 表示最 ...
- Linux下的sed流编辑器命令详解
sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内 ...
- linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
- linux三剑客之sed命令
一.前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令 ...
- Linux中使用sed命令或awk命令修改常规配置文件
一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...
- (转)linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- 全网最详细的Linux命令系列-sed文本处理命令
Sed简介 SED是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑,标准输入可以来自键盘输入.文本重定向.字符串.变量,甚至来自于管道的文本,与VIM编辑器类似,它一次处理一行内容,Sed可 ...
随机推荐
- 1-12 ARP协议
ARP(Address Resolution Protocol)地址解析协议,负责将相应的IP地址解析成MAC地址. 在局域网中,网络中实际传输的是‘帧’,帧里面包含了目的主机的MAC.ARP就是用来 ...
- ZipFile解压文件不改变压缩包内文件修改日期的方法
本文参考http://stackoverflow.com/questions/9813243/extract-files-from-zip-file-and-retain-mod-date-pytho ...
- CSS3实现Loading效果
使用Loding的gif图,每一帧图片的外层会有白色描边.所以如果必须使用gif图的话,请将背景色设置为白色. 你也尝试用以下方法,使用css来实现loading的效果 1. 适用于pc端.在移动端上 ...
- .Net 零星小知识
1. 深拷贝和浅拷贝 单纯讲这两个词,其实不容易记住区别,但是看看他们对应的英语单词就显而易见了: 深拷贝: Clone 浅拷贝: Copy 记住了这个,下面在看看详细一点的信息: Copy: 只是复 ...
- transfromjs动画效果
记得以前facebook做过一款HTML5游戏.开场动画是一块软体类似豆腐的东西一起摇摆.类似的效果如下面的gif所示: facebook当时使用的是createjs下的子项目easeljs和twee ...
- pooling的原理与Python实现
本文首先阐述pooling所对应的操作,然后分析pooling背后蕴含的一些道理,最后给出pooling的Python实现. 一.pooling所对应的操作 首先从整体上对pooling有一个直观的概 ...
- MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”
MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...
- 预习笔记 多态 --S2 4.3
第三章 多态 polymorphism 多态 instance 例子override 重载 constructor 构造器ClassCastException 类型转换异常upcasting 上抛 d ...
- 纯JS实现中国行政区域上下联动选择地址
一.实现目的: 如标题所述,通过JS来实现地址的选取,上一篇博客介绍的方式是通过java读取txt资源文件来实现地址的选择,通过ajax方式访问服务器实现省市区联动.此篇中将介绍如何使用JS实现相同功 ...
- Button四角有弧度及按下显示不同的颜色
一般的button都是矩形或者正方形,但为了显示不同的效果,让界面更美化,可以对其进行处理!!! 1.四角有弧度的button 2.按下button显示不同的颜色 实现步骤: 首先在drawable文 ...