首页 雷火竞猜正文

寂寞空庭春欲晚,shell实战(一):sed指令小结-雷火电竞亚洲

admin 雷火竞猜 2019-06-02 186 0

特别阐明:该专栏文章均来源自微信大众号《大数据实战演练》,欢迎重视!

一、简介

sed是一种流修改器,它是文本处理中十分中的东西,能够完美的合作正则表达式运用,功用与众不同。sed首要用来主动修改一个或多个文件;简化对文件的重复操作;编写转化程序等。

指令格局

sed [options] 'command' file(s)

二、sed指令

  • a :新增, a 的后边能够接字符串,而这些字符串会在新的一行呈现(当前行的下一行)。
  • d :删去,删去挑选的行。
  • i :刺进, i 的后边能够接字符串,而这些字符串会在新的一行呈现(当前行的上一行).
  • p :打印,一般 p 会与参数 sed -n 一同运转.
  • s :替换,替换指定字符,一般与正则表达式联用。

三、运用场景

1. sed 增加(i/a)

指定行号增加内容

# 在第三行的上方增加一行字符串
sed -i "3i\test123" aa.txt
# 在第三行的下方增加一行字符串
sed -i "3a\ceshi456" aa.txt

匹配行之后在其上方/下方增加内容

# 在vrrp_instance VI_1下方刺进内容
sed -i '/vrrp_instance VI_1/a\ notify_master \"/etc/keepalived/xmha/keepalived.sh master\"\n notify_backup \"/etc/keepalived/xmha/keepalived.sh backup\"\n track_script {\n check\n }' keepalived.conf
# 在vrrp_instance VI_1上方刺进内容
sed -i '/vrrp_instance VI_1/i\vrrp_script check {\n script \"/etc/keepalived/xmha/checkServer.sh\"\n interval 10\n}\n' keepalived.conf

解读:

  • a:代表apend,是在匹配行追加的意思。字母前面跟行号或匹配的内容。
  • i:代表insert,是在匹配行刺进的意思。字母前面跟行号或匹配的内容。
  • \n:换行,可通过该参数刺进多行内容。
  • \:转义符。

2. sed 输出(p)

# 输出文件一切内容
sed -n '1,$p' /etc/hosts
# 将每行内容放到一行上进行展现,每行内容以逗号进行分隔。
sed ':t;N;s/\n/,/;b t' /etc/hosts
# 输出第二行到第四行之间三行的内容
sed -n "2,4p" /etc/hosts

解读:

$p为最终一行的意思,'1,$p',是挑选打印榜首行到最终一行。必须用单引号表明,双引号会报错。

3. sed 替换(s)

  • 全文匹配替换
sed -i "s/http:\/\/.*/http:\/\/$ip:$1\";/g" app.js

app.js的部分内容

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.6.6.71:9200";

解读:

动态替换全文匹配http://行之后的内容。\为转义符,用来转义/。.*代表一切内容。

  • 指定行号匹配替换
sed -i "5s/port:.*/port: $2,/g" ../Gruntfile.js

Gruntfile.js的部分内容

connect: {
server: {
options: {
port: 9100,
base: '.',
keepalive: true
}
}
}

解读:

替换第4行的匹配的port之后的内容,.*代表一切内容。

4. sed 删去(d)

sed -i "/notify_master \"\/etc\/keepalived\/xmha\/keepalived.sh master\"/,+4d" keepalived.conf
# 长途主机删去文件内容
ssh 10.6.6.72 "sed -i '/notify_master \"\/etc\/keepalived\/xmha\/keepalived.sh master\"/,+4d' /etc/keepalived/keepalived.conf"
# 有特殊符号的行应该怎么匹配删去
sed -i "/.*30 1 \* \* \* root sh \/etc\/keepalived\/xmha\/checkFile.sh/d" /etc/crontab

解读:

假如匹配字符串中有*、/等特殊符号时,就需要转义符\来转义。

四、总结

本篇文章首要描绘了sed指令的根本用法,怎么对文件内容进行增修改查,并附上了我自己工作上遇到的小比如。当然,sed指令博学多才,我不可能每个用法都能统筹,假如还想持续拓宽的话,能够拜访

http://man.linuxde.net/sed

学习sed更多用法。


--END--

码字不易,假如您觉得文章写得不错,请重视作者~ 您的重视是我写作的最大动力

友谊提示:原文排版精巧,可点击共享链接检查。

雷火电竞版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

最近发表

    雷火电竞亚洲_雷火电竞_雷火电竞app

    http://www.web-kca.com/

    |

    Powered By

    使用手机软件扫描微信二维码

    关注我们可获取更多热点资讯

    雷火电竞出品