diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..e508656473f06634484e17c1fad65753f1692113 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "gml-66baba204f5042a79ebc82bc2a26ae32", + "keywords": [], + "keywords_must": ["Linux命令"], + "keywords_forbid": [], + "children": [], + "export": [ + "exercise_01.json" + ] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.json" new file mode 100644 index 0000000000000000000000000000000000000000..0a5993d5478df33d3cf13d60ccf90bd9dd102a1f --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" new file mode 100644 index 0000000000000000000000000000000000000000..4bf9f38a8ff9b934d020474d86d9a15214474848 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" @@ -0,0 +1,62 @@ +# 实用Linux命令掌握20%:grep + +Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 + +**本节知识**: + +假设文件`1.txt`的文本如下(可以利用`touch`命令和`vi`命令组合创建): + +```bash +1. hello world +2. wold hello +3. nothing is important +4. i like movie movie +hello world +wold hello +nothing is important +i like movie movie +``` + +`grep` 命令用来查找文本,这里是最常用的几个操作例子: + +* 查找文件`1.txt`中含有`"hello"`字符串的行:`grep hello 1.txt` +* 使用正则表达式查找文件`1.txt`中含有数字的行:`grep -E "\d." 1.txt` +* 查找文件`1.txt`中不包含`"hello"`字符串的行:`grep -v hello 1.txt` +* 查找文件`1.txt`中含有`"movie"`字符串的行以及它前面的3行:`grep movie -B 3 1.xt` +* 查找文件`1.txt`中含有`"movie"`字符串的行以及它后面的3行:`grep movie -A 3 1.xt` +* 查找文件`1.txt`中含有`"4."`字符串的行以及它前后3行:`grep 4. -C 3 1.txt` + +**本节任务**: + +1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`grep`命令。 +2. 以下对命令`grep`描述错误的是? + +## 答案 + +```bash +`grep`命令不能对文件夹递归查找,例如 +`grep "text" . -r -n` +``` + +## 选项 + +### A + +```bash +如果要查找包含某个字符串的行的前后3行 +可以使用 `grep -C 3 xxx.log` 命令 +C 表示 center +``` + +### B + +```bash +`grep`命令的匹配参数默认是普通的通配符 +`grep`命令的通过`-E`选项来指定正则表达式匹配 +``` + +### C + +```bash +`grep`命令可以通过通配符查找多个文件,例如`grep hello *.txt` +```