康盛博客

如果你觉得本站能帮助你学习PHP编程,请推荐给你的朋友们!

sed参数解析

折腾了几天sed,对于复杂的,还是不太明白,可能还有些地方没有参悟透,以下是一些参数,加了一些简单的说明。备忘而已。
sed的基本原则:
什么是模式空间(pattern space):所谓的模式空间,指的是当前正在处理的行
什么是保持空间(hold space):保存模式空间中的内容

基本思路:
sed编辑的是输入文件的副本,源文件不会改变(除非启用-i选项)
sed将输入文件的内容送入一个pattern space,并按行进行处理
sed默认会输出pattern space中的内容,除非启用-n选项

函数参数 功能
# 建立批注 ,多行注释 要以\红续行
{ } 集合有相同位址参数的指令。
! 不执行函数参数,sed -e ‘/one/!d’ num,在文件num中不删除包括one的数据行
= 印出资料行数( line number ),行数将在数据输出前先输出,最多有两个地址参数 # sed = filename | sed ‘N;s/\n/\t/’ //显示行号
a\ 添加使用者输入的数据,最多有一个地址参数
: label 建立 script file 内指令互相参考的位置。
b label 将执行的指令跳至由 : 建立的参考位置。
c\ 以使用者输入的数据取代数据,最多有两个地址参数
d 删除数据,最多有两个地址参数
D 删除 pattern space 内的第一行数据,如果只有一行数据,则d和D是一样的,但是如果有多行,d则会读入下一行再进行删除;D则不再读入下一行,而将剩下的数据重新执行 sed script
g 表示将 hold space 内资料放回 pattern space,覆盖原有的
G 将数据从 hold space 追加到 pattern space # sed /^$/d;G’ //使文件每一行之后有且只有一个空行
h 将数据从 pattern space 拷贝至 hold space,在原先的hold space之前添加数据
H 把数据从 pattern space 添加至 hold space,在原先的hold space之后添加数据
l 印出 l 资料中的 nonprinting character 用 ASCII 码。
i\ 插入添加使用者输入的数据行。
n 读入下一行资料。输出 pattern space 内的数据,第一次内的数据已经被覆盖(只有偶数行的数据)# sed ‘n;d’ //删除所有偶数行; # sed -e ‘1~2d’ filename //删除奇数行
N 添加下一行到 pattern space。
p(小写) 打印出资料,拷备一份 pattern space 中的内容至标准输出
P(大写) 打印出 pattern space 内第一行的数据。
q 跳出 sed 编辑,sed -e ‘/Linux/q’ -f script_file input.dat
r 在 pattern space 内的数据输出后 , sed读入它后面的文件内容,最多与一个地址参数配合使用
s 替换字符串,最多有两个地址参数
t label 先执行一替换的编辑指令 , 如果替换成牛p>则将编辑指令跳至 : label 处执行。
w 将pattern space 内的资料写入到后面的文件中,如果不存在则创建,或者覆盖
x 交换 hold space 与 pattern space 内容。
y 字符转换,字数必须相同,最多两个地址参数,格式:[address1[ ,address2]]y /xyz…/abc…/

Tags:

当前位置: 康盛博客 > Linux Shell编程

linut tput

偶然见到linux 下的tput命令,非常的实用,特找来一篇教程,赶紧学习了下,特记下笔记如下。总结性的。

tput可以对终端进行操作,如更改字体的大小,前景色,文本的下划线,移动鼠标等。这引起功能是通过terminfo 数据库来完全的。

tput的选项

cup :定位光标位置,如tput cup 30 60
sc/rc :这是一个成对的选项,用来保存光标的当前位置和返回保存的位置
civis/cnorm :成对的选项,前者用来隐藏光标,后者用来重置(让光标可见)
setb/setf :前者用来更改文本的背景色,后者用来更改前景色
颜色对应值
0:黑色 tput setb 0 下同 echo -e ‘\E[30;47m’ #和前面的设置一样,建议使用后面的这种方式,下同
1:蓝色 echo -e ‘\E[34;47m’
2:绿色 echo -e ‘\E[32;47m’
3:青色
4:红色 echo -e ‘\E[31;47m’
5:洋红色 echo -e ‘\E[35;47m’
6:黄色 echo -e ‘\E[33;47m’
7:白色 echo -e ‘\E[37;47m’

rev :颜色反显,也就是黑色变成白色
bold :将文本改为粗体(echo -e ‘\033[1mblod text.\033[0m’ 解析: \033代表转义,[1表示打开加粗属性,[0表示关闭加粗属性,m表示转义结束
smul/rmul :前者显示带下划线的文本(echo -e ‘\033[4munderlined.\033[0m’),后者用于重置,例 tput smul;echo “welcome to www.helpphp.cn”;tput rmul
tput el :清除从当前光标位置到行尾的数据
tput ed :清除从当前光标位置到设备末尾的数据
tput clear :清除整个屏幕,同clear命令一样的效果
tput cols :当前终端的列数
tput lines :当前终端的行数
tput sgr0 :清除所有属性 同 tput init 或者tput reset差不多
tput -S :像shell here document表现形式一样:
tput -S < > clear
> cup 10 10
> bold
> !

关于它的应用,在ABS一书中,有一些例子。

关于转义,还有一些参考:
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m — \33[37m 设置前景色
\33[40m — \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标

Tags:

当前位置: 康盛博客 > Linux Shell编程



php在线帮助手册

Mysql在线帮助手册

php教程

php教程转载

瑞豪开源VPS(最便宜VPS)

订阅本站:

RSS

添加到收藏夹

文章分类:

友情链接: