2013年12月29日星期日

linux shell 脚本攻略学习19--sed命令详解 - Hi_Amos

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
linux shell 脚本攻略学习19--sed命令详解 - Hi_Amos  阅读原文»

sed(意为流编辑器英语stream editor”的缩写)是Unix/linux常见的命令行程序。sed用来把文档字符串里面的文字经过一系列编辑命令转换为另一种格式输出,即文本替换。sed通常用来匹配一个或多个正则表达式的文本进行处理。

输入sed --help查看帮助信息:

amosli@amosli-pc:~/learn/sed$ sed --help
Usage:
sed [OPTION]... {script-only-if-no-other-script} ...

-n, --quiet, --silent
suppress automatic printing of pattern space
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script
-file to the commands to be executed
--follow-symlinks
follow symlinks when processing
in place
-i[SUFFIX], --in-place[=SUFFIX]
edit files
in place (makes backup if extension supplied)
-l N, --line-length=N
specify the desired line
-wrap length for the `l' command
--posix
disable all GNU extensions.
-r, --regexp-extended
use extended regular expressions
in the script.
-s, --separate
consider files as separate rather than as a single continuous
long stream.
-u, --unbuffered
load minimal amounts of data from the input files and flush
the output buffers
more often
--help display this help and exit
--version output version information and exit

If no
-e, --expression, -f, or --file option is given, then the first
non
-option argument is taken as the sed script to interpret. All
remaining arguments are names of input files;
if no input files are
specified,
then the standard input is read.

语法:

sed [OPTION]... {script-only-if-no-other-script} ...

参数-实例:

测试文件:test.txt

amosli@amosli-pc:~/learn/sed$ cat test.txt
hi,this is
sed command test file
linux world is so amazing

you will like it
!

1.简单的文本替换

常用格式:

sed 's/pattern/replace_string' file
#或者
cat file | sed 's/pattern/replace_string' file

其中pattern为模式,replace_string为替换词.即,将符合pattern的字符串替换为replace_string .

例:将will变为大写WILL

amosli@amosli-pc:~/learn/sed$ sed "s/will/WILL/" test.txt
hi,this is
sed command test file
linux world is so amazing

you WILL like it
!

使用标准输入:

amosli@amosli-pc:~/learn/sed$ echo "this is test" | sed "s/test/TEST/"
this is TEST

2.-i参数,将替换结果应用于原文件

默认情况下sed不会修改原文件,因为式作原理为:sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

amosli@amosli-pc:~/learn/sed$ sed -i 's/like/LOVE/' test.txt
amosli@amosli
-pc:~/learn/sed$ cat test.txt
hi,this is
sed command test file
linux world is so amazing

you will LOVE it
!

英文提示信息:

-i[SUFFIX], --in-place[=SUFFIX]
edit files
in place (makes backup if extension supplied)

3、关于后缀/g

/g默认表示替换所有符合条件的文本。

amosli@amosli-pc:~/learn/sed$ echo "test1 test2 test3 test4 " | sed "s/test/TEST/g"
TEST1 TEST2 TEST3 TEST4

/Ng表示从第N个符合条件的开始替换.

amosli@amosli-pc:~/learn/sed$ echo "test1 test2 test3 test4 " | sed "s/test/TEST/3g"
test1 test2 TEST3 TEST4

4、关于字符'/'

字符‘/’在sed命令中扮演着定界符的作用,'|'和':'的作用和'/'一样,可以做为定界符使用

如:

amosli@amosli-pc:~/learn/sed$ echo "test1 test2 test3 test4 " | sed 细节设计成就卓越产品 - Microinteraction  阅读原文»

自从看了微交互这本书以后,对微交互这个概念产生了浓厚的兴趣,所以就即兴申请了微信公共账号:微交互(Microinteraction) ~~欢迎大家关注! @微交互

设计在于细节,这是人所共知的道理。随着设备越来越智能化,我们对其细节的要求也会越来越高。

什么是“微交互”? 在观察人们对产品的使用过程时,专注于每一个时刻,每一个简单的任务。举例来说,解锁手机就是一个微交互,系统启动时播放的声音也是一个微交互。微交互不仅仅是人们与计算机的交互,而是涉及到各个方面,“在我们携带的设备中,在我们屋子里的家用电器上,甚至在我们生活和工作的环境中。许多电器和应用是完全架构在一个微交互之上的。”

微交互:细节设计从进度条开始

微交互:小而美的交互细节

微交互之移动设计

微交互:移动界面设计中的渐变

微交互:周末送上精彩交互设计


本文链接:http://www.cnblogs.com/microinteraction/p/3497281.html,转载请注明。

阅读更多内容

没有评论:

发表评论