sedlinux
⑴ 谁能帮忙解释下linux shell程序中的sed "s/$//;s/ *//g;/^$/d" 这句是什么意思
意思是删除空行,空行包括没有任何字符的空行,和只有若干个空格的空行。
1、s/$// 在每一行后面追加空。
2、s为搜索。
如:s/a/b/
搜索a将替换为b ,并只替换一次。
3、s/ *//g 将空格删除。
4、g代表搜索到的全部替换 。
5、“空格星”(" *") 代理多个空格。
6、/^$/d 删除空行。
(1)sedlinux扩展阅读:
作用
catfile.pl
useGetopt::Std;
usevarsqw($opt_d$opt_f$opt_p);
getopts('d:f:p');
print"$opt_d=>$opt_d "if$opt_d;
print"$opt_f=>$opt_f "if$opt_f;
print"$opt_p=>$opt_p
"if$opt_p;
然后在命令行中运行:
perlfile.pl-d20040412-flouiskoochen-p
可得到下列形式的输出:
$opt_d=>200040412
$opt_f=>louiskoochen
$opt_p=>1
解释一下"d:f:p",d和f后有冒号,表示-d,-f后面要跟参数。p后面没有冒号,表示-p后面不带参数。而且-d,-f后所跟的参数分别赋给变量$opt_d和$opt_f。对于变量$opt_p,若命令行加了-p,则$opt_p=1,否则为0。
⑵ linux中sed命令如何运用‘\ ’ 反斜杠
在Linux中sed命令可以用于替换但是替换的内容有时会包括元字符
这时需要使用'\'反斜杠将元字符转换成普通字符
例如:
ifconfig eth0|sed -n '2p'|cut -d: -f2|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"`
⑶ linux下sed使用
一、Sed简介 Sed:Stream Editor 流式编辑器 又称行编辑器,每次只编辑一行。Sed工作是在“模式空间”中进行的,并不操作源文件。对源文件无危害。 二、Sed使用格式 Sed命令的常用格式如下: (1)Sed [options] ‘script’ input_file… (2)Sed [options] –f script_file input_file… (3)Sed [options] ‘ADDR1,ADDR2command’ input_file… 例如:#sed ’1,2d’ fstab 就可以将fstab的前两行删除并显示出来,但是它不会改变源文件。 #Sed ‘1,2!d’ fstab 表示删除除第一行和第二行之外的所有行。 (4)Sed [options] ‘/PATTERN/command’ input_file…… &:s/l..e/&er/:表示引用前面匹配到的所有字符。 例如:sed ‘/[[:upper:]]/d’ binary.sh 表示删除所有的大写字母的行。 (5)Sed ‘/PATTERN1/,/PATTERN2/command’ input_file…… 说明:这表示从第一次被PATTERN1匹配到的行到第一次被PATTERN2匹配到的中间的所有行执行command命令。 三、Sed的常用选项: -n:只显示sed匹配到的行。其余行不显示。下文有范例。 -i :可以直接操作原文件。默认情况下sed不会改变原文件,但是-i选项可以修改原文件,此选项应慎用。 -r:可以使用标准正则表达式。默认情况下sed只支持基本正则表达式,但是加上-r选项后则支持扩展正则表达式 -e:多脚本共用。可以同时执行多个命令。例如: 代码如下: [root@localhost ~]# sed -e 's@@H1@g' -e 's@(l..e).@1r.@g' test He love His lover. She like Her liker. Dove love Her liker. 也可以这样用,中间用分号隔开: 代码如下: [root@localhost ~]# sed 's@@H1@g;s@(l..e).@1r.@g' test 四、使用示例 代码如下: #sed -e 命令行处理 -a 新增 > sed -e '$ a wiu' test.txt #在test.txt的结尾处添加wiu 代码如下: # 把-e换成-n > sed -n '$ a wiu' test.txt # 只显示被处理的一行 代码如下: # -c 替换多少行 为你制定的字符串,这里我的test.txt内容如图 > sed -e '2,5c xiaowei' test.txt #把2-5行替换成字符串xiaowei 代码如下: # 多命令执行 -e > sed -e '2,5c xiaowei' -e 's/cccc/wiu/' test.txt 代码如下: # -i 不输出 -s 替换 >sed -i 's/111111/wiu/g' test.txt 代码如下: # i 插入 自定义的字符串 在test.txt的第二行插入xiaowei > sed -e '2i xiaowei' test.txt 代码如下: # d 删除输入任何字符串 > sed -e '2d' test.txt #删除第二行
⑷ Linux里面sed -e命令作用是什么
sed -e是可以在同一行内执行多条命令,而不加-e则不可以
⑸ 关于linux里的sed的b标签的用法
这是老式编程语言里的标签跳转, 相当于C语言里面的goto语句
可以实现 分支选择, 循环等功能
sed '/^AA/ba;s/$/ NO/;b;:a;s/$/ YES/' 解读如下
sed是逐行扫描的
/^AA/ba;s/$/ NO/ 意思是如果当前行句首是AA
则跳转到标签a,执行s/$/ YES/ 即在行末插入YES (这里使用替换s命令实现插入)
否则执行s/$/ NO/, 在行末插入NO
对所有行都执行这种操作, 大功告成
⑹ linux,sed命令的sed怎么发音....
http://..com/link?url=-
⑺ linux下如何用sed命令将$(VAR) 替换为 ${VAR}
sed 's/$(\([^)]*\))/${\1}/g' filename
⑻ Linux中的sed是什么意思呢,如何使用呢
Sed是一项Linux指令,全称是Stream
EDitor,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。Sed主要用于自动编辑一个或者多个文件,多用于脚本中对文件的处理。
Sed命令可以对文件进行增加、删除、修改和查找操作,所以学好sed命令是写自动化脚本必须的基础之一。
调用sed命令有两种形式:
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
sed命令主要选项
-e command,--expression=command允许多台编辑。
-h,--help打印帮助,并显示bug列表的地址。
-n,--quiet,--silent取消默认输出。
-f,--filer=script-file引导sed脚本文件名。
-V,--version打印版本和版权信息。
命令:
a\在当前行后面加入一行文本。
b label分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
c\用新的文本改变本行的文本。
d 从模板块位置删除行。
D 删除模板块的第一行。
i\在当前行上面插入文本。
h拷贝模板块的内容到内存中的缓冲区。
H 追加模板块的内容到内存中的缓冲区。
g 获得内存缓冲区的内容,并替代当前模板块中的文本。
G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
l 列表不能打印字符的清单。
n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
p 打印模板块的行。
P 打印模板块的第一行。
q 退出Sed。
r file从file中读行。
t labelif分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
T label错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
w file写并追加模板块到file末尾。
W file写并追加模板块的第一行到file末尾。
! 表示后面的命令对所有没有被选定的行发生作用。
s/re/string 用string替换正则表达式re。
= 打印当前行号码。
# 把注释扩展到下一个换行符以前。
⑼ Linux中的sed是什么意思呢,简单解释一下啊
你好。
linux系统中的sed是一个命令,具体说:sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。