shell本文操作

来源:互联网 发布:linux nginx域名解析 编辑:程序博客网 时间:2024/05/18 10:23

显示第1行

sed -n 1p f1.sh

显示1,3行

sed -n '1p;3p' f1.sh
sed -n -e 1p -e 3p f1.sh

显示1-3行

sed -n 1,3p f1.sh

显示最后一行

sed -n '$p' f1.sh

显示含“love”且含”you“的行

grep love f1.sh | grep unix f1.sh

在第1行前插入1行’hello’内容:

sed -i '1i hello' f1.sh #-i表示直接写文件,否则只是写文件副本。

在第1行后插入2行’hello’,’world’内容:

sed -e '1a hello' -e '1a world' f1.sh

把第1行替换为hello:

sed "1c hello" f1.sh

将第1行中的unix替换为hello:

sed '2s/unix/hello/g' f1.sh #末尾的g表示替换匹配的全部字符串,否则只会替换第一个匹配

将全文中的love替换为like:

sed 's/love/like/g' f1.sh #g表示替换一行中的所有

在第1行首添加hello:

sed '1s/^/hello/' f1.sh #实际用了替换,^表示行首

在第1行尾添加hello:

sed "1s/$/hello/" f1.sh #$表示行尾

删除第1行的love:

sed "1s/love//g" f1.sh #替换为none

删除第1行:

sed '1d' f1.sh

路径的替换,特殊在于有”/”,如将”/var/log/tomcat”替换为”LOG_DIR/tomcat”:

LOG_DIR=/var/logAPP_LOG=/var/log/tomcatecho ${APP_LOG} | sed "s:${LOG_DIR}:LOG_DIR:g"#由于替换文本中有'/',故sed命令中用':'做分隔符,#也可用其他符号做分隔符,只要分隔符不与替换字符串中的字符重复

linux自带的替换表达式,效率更高,也可用于路径替换:

LOG_DIR=/var/logAPP_LOG=/var/log/tomcatecho ${APP_LOG//${LOG_DIR}/LOG_DIR}# ${string//subStr/replaceStr}

未解决:

对倒数第2-4行进行操作:
对含love且不含you的行作操作:

0 0
原创粉丝点击