linuxshellsed
‘壹’ 谁能帮忙解释下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)linuxshellsed扩展阅读:
作用
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 下用shell sed替换文本中的字符串
sed是行编辑器,用这个工具非常困难。可以参考以下脚本:
#!/bin/bash
while
read
line
do
if
echo
$line
|
grep
'Hour$'
>/dev/null;
then
echo
$line
|
tr
-d
'\n'
else
echo
$line
fi
done
<
$1
1,将上面脚本保存为fuck.sh
2,chmod
755
fuck.sh
3,./fuck.sh
file
‘叁’ 如何使用Linux sed 命令将Shell的参数传进去写在文件里
re.sh:
#只需要在脚本中写这一行就可以了-i可以修改原文件
sed-i's/defineVER0/defineVER$1/'cc.c
‘肆’ Linux Shell中,sed重定向到文件自身的原理。
Shell的原因,用>重定向 到输入文件,会先把文件清空,
和sed无关,awk、cat等都可以试试,也是空文件比如:
catdata.txt>data.txt#也是得到空文件
> 文件名
文件名不存在,先新建;文件名存在,先清空——这一部分先执行。
‘伍’ linux shell sed命令用法
我注意到你结尾忘写斜杠了。
echo$A|sed"s/he/$Var/"
‘陆’ linux 下用shell sed替换文本中的字符串
sed是行编辑器,用这个工具非常困难。可以参考以下脚本:
#!/bin/bash
while read line
do
if echo $line | grep 'Hour$' >/dev/null; then
echo $line | tr -d '\n'
else
echo $line
fi
done < $1
1,将上面脚本保存为fuck.sh
2,chmod 755 fuck.sh
3,./fuck.sh file
‘柒’ linux shell sed命令与转义字符
不需要转义,可以更改定界符。
例如:
A=“2013/06/09“
sed“s#hello#$A#"
将定界符改为#就可以了。
望采纳,谢谢支持!
‘捌’ linux shell中 sed 文件的1到7行行首有指定字符串的整行替换为为指定内容.
sed '1,7s/^字符串.*/替换内容/' file
不要随便加 -i 参数。先确定好在加。
‘玖’ linux shell 中sed 替换命令不能立即保存问题
关于日期变量,你先定义一个 a=`date +%Y%m%d`,然后下面的代码中出现的日期都可以直接用$a替代。
你追问的那句话可以直接如下修改:
#!/bin/bash
a=`date+%Y%m%d`
expaa/bbfile=/home/oracle/$a/aa$a.dmp
反正a这个变量可以直接写到日期语句当中,而不需要使用+号之类的。
‘拾’ linux shell sed 文件中的某几行到另一个文件的最后一行
将文件中的某几行取出来,放到另一个文件的最后?
这个意思吗?
sed -n '2,5p' file1 >>file2
将file1的2~5行取出来附加到file2后面