1、准备数据
格式:
pgj.trade.baidu.com
chy.guoji.baidu.com
ndd.trade.baidu.com
cmt.trade.baidu.com
....
2、cut分割
-d, --delimiter=DELIM use DELIM instead of TAB for field delimiter
-f, --fields=LIST select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
cut -d. -f2 domain.txt
3、排序-sort
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
cut -d. -f2 domain.txt |sort
4、取唯一值-uniq
默认输出唯一行
-c, --count prefix lines by the number of occurrences
-d, --repeated only print duplicate lines
-u, --unique only print unique lines
cut -d. -f2 domain.txt |sort|uniq -c
5、再排序-sort
-t, --field-separator=SEP 指定分隔符 use SEP instead of non-blank to blank transition
-n, --numeric-sort 按数字格式排序 compare according to string numerical value
-f, --ignore-case 不考虑大小写 fold lower case to upper case characters
-r, --reverse 反转 reverse the result of comparisons
-g, --general-numeric-sort compare according to general numerical value
cut -d. -f2 domain.txt |sort|uniq -c|sort -n
cut -d. -f2 domain.txt |sort|uniq -c|sort -nr
cut -d. -f2 domain.txt |sort |uniq -c|sort -g
cut -d. -f2 domain.txt |sort|uniq -c|sort -nr|head -2
sort domain.txt -t. -k2
-k:指定排序的字符开始和结束位置
-k, --key=POS1[,POS2] start a key at POS1, end it at POS2 (origin 1)
data:
12.12.45.4
36.415.545.45
9.45.15.15
154.45.45
sort a.txt -t. -k2
output:
12.12.45.4
36.415.545.45
9.45.15.15
154.45.45
sort a.txt -t. -k1
output:
12.12.45.4
154.45.45
36.415.545.45
9.45.15.15
case:
atnodes "zgrep validateOrder.jsp /server/tts/logs/tts.log.2014-10-30-1*.gz" l-ttsi[1-10].f.cn1 |grep "RequestError"|awk -F '&id=' '{print $2}'|awk -F'&' '{print $1}'|sort|uniq|wc
分享到:
相关推荐
这条命令将 log_file 文件中的每一行数据都输出到标准输出,然后使用 sort 和 uniq 命令对输出结果进行排序和去重,最后使用 wc 命令统计输出结果的行数。 2. 查看某一个页面被访问的次数 使用 grep 和 wc 命令...
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn ``` 3. **`cut`**:提取指定列。若只关心IP和状态码,可使用: ``` cut -d ' ' -f 1,6 /var/log/nginx/access.log ``` 4. **`date`...
`cut`用于提取文件的部分内容,`cat`用于显示文件内容,`file`用于确定文件类型,`read`用于从用户那里获取输入,`sort`用于排序,`uniq`用于去除重复行,`expr`用于执行数学运算,`find`用于查找文件,`tee`用于...
- 示例:`sort file.txt | uniq` - `expr`: 进行简单的算术运算。 - 示例:`expr 2 "+" 3`(计算结果为 5) - `find`: 在目录树中查找文件。 - 示例:`find . -name "filename" -print` - `tee`: 将标准输出同时...
- `wc -l`, `wc -w`, `wc -c`:分别计算文件的行数、单词数和字符数。 - `cp sourcefile destfile`:复制文件。 - `mv oldname newname`:重命名或移动文件。 - `rm file`:删除文件。 - `grep 'pattern' file`:在...
+ `wc`:计算文件行数、单词数和字符数 + `cp`:文件拷贝 + `mv`:重命名文件或移动文件 + `rm`:删除文件 + `grep`:在文件搜索字符串 + `cut`:指定欲显示的文件容围 + `cat`:输出文件容到标准输出设备 +...
sort -m <(sort A | uniq) <(sort B | uniq) <(sort B | uniq) | uniq -u ``` 使用`sort`和`uniq`命令处理文件A和B的交集、并集和差集。 12. **查找含有指定字符串的文件**: ```bash for file in $(ls $2); ...
- `uniq`:从排序后的文件中移除重复行。 - `expr`:执行算术运算。 - `find`:在文件系统中搜索文件。 - `tee`:将数据发送到标准输出以及保存到文件。 - `basename`:返回文件名部分。 - `dirname`:返回...
本文将深入讲解一些最常用的Shell工具,包括find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed和awk,以及如何利用它们来处理文本。 ### 01 find - 文件查找 `find`命令用于在文件系统中查找符合特定条件的...
- `wc`:计算文件的行数、单词数、字符数。 - `cp`:复制文件。 - `mv`:移动或重命名文件。 - `rm`:删除文件。 - `grep`:在文件中搜索特定模式。 - `cut`:提取文件的部分内容。 - `cat`:显示文件内容。 ...
- `wc`:统计输入的字节数、字数、行数等。 - `cp`:复制文件或目录。 - `mv`:移动文件或重命名文件。 - `rm`:删除文件或目录。 - `grep`:在文件中搜索匹配正则表达式的行。 - `cut`:从文件中剪切字段或字节。 -...
这一部分的具体实现取决于实际需求,可能需要用到的数据处理命令包括但不限于`awk`、`sed`、`sort`、`uniq`等。 #### 结论 通过本次实验的学习与实践,不仅可以增强对LINUX SHELL编程基础的理解,还能掌握一系列...
- `uniq`: 过滤文件中的重复行。 - `expr`: 进行算术运算。 - `find`: 搜索文件系统中的文件。 - `tee`: 将标准输出写入文件并显示在屏幕上。 - `basename`和`dirname`: 提取文件名或目录名。 - `head`和`tail...
- `wc -l filename -w filename -c filename`:统计文件中的行数、单词数和字符数。 - `cp sourcefile destfile`:复制文件。 - `mv oldname newname`:重命名文件或移动文件。 - `rm file`:删除文件。 - `grep '...
Unix命令如echo、ls、wc、cp、mv、rm、grep、cut、cat、file、read、sort、uniq、expr、find、tee、basename、dirname、head、tail、sed、awk等,这些命令大多用于文件操作和文本处理。 管道(|)是一个非常强大的...
- `wc`:统计文件的行数、单词数和字符数。 - `cp`:复制文件。 - `mv`:重命名或移动文件。 - `rm`:删除文件。 - `grep`:在文件中搜索特定模式。 - `cut`:提取文件内容的特定部分。 - `cat`:显示文件...