谁能帮忙解释下linux shell程序中的sed "s/$//;s/ *//g;/^$/d" 这句是什么意思
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
意思是删除空行,空行包括没有任何字符的空行,和只有若干个空格的空行。
1、s/$// 在每一行后面追加空。
2、s为搜索。
如:s/a/b/
搜索a将替换为b ,并只替换一次。
3、s/ *//g 将空格删除。
4、g代表搜索到的全部替换 。
5、“空格星”( " *") 代理多个空格。
6、/^$/d 删除空行。
扩展资料:
作用
cat file.pl
use Getopt::Std;
use vars qw($opt_d $opt_f $opt_p);
getopts('d:f:p');
print "\$opt_d => $opt_d\n" if $opt_d;
print "\$opt_f => $opt_f\n" if $opt_f;
print "\$opt_p => $opt_p\n" if $opt_p;
然后在命令行中运行:
perl file.pl -d 20040412 -f louiskoochen -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。