今日我们来学习linux的sed命令。sed(stream editor 的缩写)是一个强大的文本流编辑器,用于对文本数据进行过滤和转换。通常用于批处理文本文件和数据流。
基本用法
sed [选项]... {脚本} [输入文件]...
选项
- -e script:向 sed 添加一条命令。这在需要多个脚本的情况下非常有用。
# 输出 "hi earth"
echo "hello world" | sed -e 's/hello/hi/' -e 's/world/earth/'
- -f file:从文件中读取 sed 脚本。
# test.txt 文件
apple
banana
cherry
date
# script.sed 文件
/banana/s//orange/
/date/d
sed -f script.sed test.txt
# 输出
apple
orange
cherry
- -i:直接修改文件(原地修改),而不是输出到标准输出。
# 这条命令会将 filename.txt 文件中所有的 "cat" 替换为 "dog",并直接修改文件。
sed -i 's/cat/dog/' filename.txt
常用命令
- s:替换匹配的字段。最常用的 sed 命令,格式为 s/原字符串/新字符串/标志。例如,s/cat/dog/ 会将每行中的第一个 "cat" 替换为 "dog"。
# 这条命令会输出 "hello universe"。
echo "hello world" | sed 's/world/universe/'
- d:删除匹配的字段。如果一行匹配到某个模式,该命令会将其删除。
# 这条命令只会输出 "hello"
echo -e "hello\nworld" | sed '/world/d'
- p:打印出匹配的字段。通常与 -n (默认不输出任何文本) 选项一起使用,该选项只打印由 sed 命令显式处理的行。
# data.txt 文件内容
line 1
line 2
line 3
line 4
line 5
# 打印出包含 "line 3" 的行
sed -n '/line 3/p' data.txt
总结
本文介绍了sed命令的一些常用用法,能够方便我们今后在linux中更快捷地处理文本,当然还有很多条件没有介绍到的,这个小伙伴们在今后的工作和学习中如果需要的话,可以现学现卖,哈哈哈。
欢迎大家关注晴天码字,也欢迎大家加我微信,一起探讨和学习。我们下期见~~
本文由mdnice多平台发布