diff --git "a/50\351\202\261\346\254\243\345\275\246/20240702\357\274\210Linux\345\221\275\344\273\244\350\241\245\345\205\205\357\274\211.md" "b/50\351\202\261\346\254\243\345\275\246/20240702\357\274\210Linux\345\221\275\344\273\244\350\241\245\345\205\205\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..9d96352ab4fda97f06f249dea8cd06ea7f0eaeb8 --- /dev/null +++ "b/50\351\202\261\346\254\243\345\275\246/20240702\357\274\210Linux\345\221\275\344\273\244\350\241\245\345\205\205\357\274\211.md" @@ -0,0 +1,167 @@ +### 补充 + +#### 排序(sort) + +- 默认是以每一行第一个字符的ASCII码进行排序,升序 +- ASCII码,从小到大是:阿拉伯数字<大写字母<小写字母 + +```bash +sort -t '' -nk 2 1.txt +sort -t '' -nk2 1.txt + +#-t '' :文件中以空格的分隔符 +#-n :数字 +#k 2 :第2列 +``` + +```bash +sort -r 1.txt + +#-r :倒叙 +``` + +```bash +Sort -k1.2 1.txt + +#-k1.2 :第1列的第2个字符排序 +``` + +```bash +sort -k2 1.txt -o 1.txt + +#-o :将排序后的文件保存到文件中 +``` + +```bash +sort -nk2 1.txt -u + +#-u :去重 +``` + + + +#### 去重(uniq) + +```bash +sort 1.txt | uniq + +sort 1.txt | uniq -c + +#-c :统计每个文件的重复次数 +``` + + + +#### 统计文件数/内容行数(wc -l) + +```bash +nl 1.txt + +cat -n 1.txt + +:set nu (vim中显示行数) +``` + + + +#### 提取文本中列的数据(cut) + +```bash +cut -d ' ' f1 1.txt + +#-d '分隔符' :定义字段的分隔符,默认是制表符(\t) +``` + +```bash +cut -d ' ' f1,3 1.txt + +#提取第1和第3列的数据 +``` + +```bash +cut -d ' ' f1-3 1.txt + +#提取1到3列的数据 +``` + + + +#### 三剑客(grep,sed,awk) + +##### grep + +- 显示匹配关键字所在的行 (模糊查询),过滤 + +```bash +grep www -A 2 1.txt (后两行) + +#A :after之后 +#B :before之前 +#C :center中间,前后 +``` + + + +##### sed + +1. 增 + - 前插入 (i\) + - 行插入:2i\插入的内容 + - 匹配关键字前插入:/关键字/i\插入内容 + - 后插入(a\) + - 行插入:2a\插入的内容 + - 匹配关键字后插入:/关键字/a\插入内容 +2. 删 (d) + - 删除行:2d (删除第2行) + - 删除匹配行:/关键字/d +3. 修改 + - s/旧/新/ :将每一行第一个旧换成新 + - s/旧/新/g :将每一行每一个旧换成新(g:全局) + + + +##### awk + +- 常用于处理结构化数据 + + ```bash + #语法 + awk 'pattern { actions }' 1.txt + ``` + + ```bash + awk '{ print $0 }' filename.txt + #打印文件每一行 + ``` + + ```bash + awk '/ccd/{ print $0 }' filename.txt + + #查询包含ccd的所有行 + ``` + + ```bash + awk '{ print $2 }' filename.txt + + #打印第2列 + ``` + + ```bash + awk -e '{ print $2 }' -e '/aa/ {print $3}' filename.txt + + #-e:可连续执行多个命令 + ``` + + + + + +##### column -t + +- 以表格的形式进行展示 + +```bash +echo "姓名 年龄 城市" | column -t +echo "张三 25 北京" | column -t +``` +