版权声明:
尊重知识产权,严厉打击非法采集。
先说 sed , 这个名称来源于“stream editor”的简写。用它可以很简单快速的处理文本。
例如像这样,我们需要替换某些字符。
echo "My name is hooyes" | sed s/hooyes/jack/
# My name is jack
”s”表示替换(substitute), “/”是定界符,使用逗号,分号是等效的。
例如
echo "My name is hooyes" | sed s,hooyes,jack,
echo "My name is hooyes" | sed s:hooyes:jack:
执行了以上命令后我们看到了输出了 My name is jack
下一个例子我们看看如何用 sed 处理文本文件,首先创建一个文本文件,然后使用 sed 命令替换里面的文字。
echo "My website is https://hooyes.net" > ~/temp.txt
sed s/website/blog/ ~/temp.txt
# My blog is https://hooyes.net
我们看到了令行窗输出中website替换成了blog,但temp.txt文件没有变化;
如果想保存到新的文件:
sed s/website/blog/ ~/temp.txt > temp2.txt
如何把结果保存到原文件呢?如下:
sed -ie s/website/blog/ ~/temp.txt
awk 也是一个很有用的文本处理命令,同时它还是一门编程语言,名字来源于三个联合创始人姓氏首字母(Alfred Aho, Peter Weinberger, Brian Kernighan)。 这里不讲awk编程语言,只讲他的命令。
看一下最基本的使用,准备一个文件,然后使用 awk
ls -la > temp.txt
awk '/root/ ' temp.txt
这样我们看到,筛选出了每行里含有“root”单词的。
如果我们只想显示每行的一部分,那行如下
awk '{print $1 , $9} ' temp.txt
awk '/root/ {print $1 , $9} ' temp.txt
参考文章
Command Line Tutorials – Sed & Awk
$ welcome to hooyes.net
[INFO] ------------------------------o-
[INFO] Author : HOOYES
[INFO] Site : https://hooyes.net
[INFO] Page : https://hooyes.net/p/sed-awk
[INFO] Last build : 2023-07-31 09:16:20 +0000
[INFO] -0------------------------------