作者:卟抛棄D | 来源:互联网 | 2023-07-12 20:58
linux常用工具:1.正则:正则表达式是记录文本规则的代码。在线正则表达式测试2.管道符“|”,用于连接两个命令间的输出与输入,管道符“|”左边的命令的输出会作为管道符“|”右边
linux常用工具:
1.正则:正则表达式是记录文本规则的代码。 在线正则表达式测试
2.管道符“|”,用于连接两个命令间的输出与输入,管道符“|”左边的命令的输出会作为管道符“|”右边命令的输入。
echo "hello world" | grep hello
3.grep,sed,awk为三剑客,对文本进行处理。
1).grep 根据用户指定的模式(pattern)对目标文本进行过滤,显示被匹配到的行。
-v 显示不被pattern匹配的行---》grep -nv root test.txt:文件中不包含root的行数
-i 忽略字符大小写
-n 显示匹配的行号------》grep -n root test.txt:查找文件中包含root的行数
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-E 使用ERE,相当于egrep
查找以R开始,以\结尾的行
2).sed 流编辑器,一次处理一行
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed -h 帮助文档 向下翻:j
向上翻:k
下一个关键字:n
上一个关键字:N
sed -i 's/old_word/new_word/g' test.txt 以修改文件内容的形式将
文件内全局的old_word替换为new_word.
a:新增 sed -e '4a i love you' 在第四行后面新增一行i love you;
c.取代 sed -e '2,5c i love you' 将第2至第5行的数据以i love you替换;
d.删除 sed -e '2,5d' 将第2~5行删除;
i:插入 sed -e '4i I love you' 在第四行前面插入一行I love you;
p:打印 sed -n '/root/p'
s:取代 sed -e 's/old_word/new_word/g' 将全局的old_word替换为new_word.
3).awk 把文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行后续处理
awk 'pattern {action}' test.txt
pattern 正则表达式
action 对匹配到的内容需要执行的命令(默认为输出每行内容)
test.txt awk浏览的文件名
BEGIN 处理文本前要执行的操作
END 处理文本后要执行的操作
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数(列数)
NR 已读的记录行(行数)
$0 整条记录
$1 当前行的第一个域....$2 当前行的第二个域...以此类推
awk -F: '/root/ {print $7}' /etc/passwd
1.awk 按行处理/etc/passwd文件中的每行数据;
2.将读取出的每行数据按“:”分割成域;
3.将每行经分割后的所有数据匹配正则/root/,匹配包含root的行;
4.将匹配到的行执行print $7操作,即打印第7域(列),得出最后数据。
awk -F: 'NR==2{print $0}' /etc/passwd
1.awk 按行读取passwd文件中所有数据;
2.读取的数据按“:”分割为域;
3.匹配NR==2,第二行数据,并打印整行所有数据print $0.
awk -F: 'BEGIN{print "i love you"} {print $6,$7} END{print "do you love me?"}' /etc/passwd
BEGIN 处理文本前要执行的操作
END 处理文本后要执行的操作
根据pid查看某进程所占用内存%MEM百分比