28 lines
1.4 KiB
Markdown
28 lines
1.4 KiB
Markdown
# 常用的linux命令
|
||
> ## 文件、字符串操作命令
|
||
* **awk命令**:
|
||
awk是好用的行处理工具,其能够将每行的文本当作参数传递给自定义的动作,其数据既可以来源于管道的输入,也可以来源于指定的文件
|
||
* awk命令的格式类似于
|
||
```shell
|
||
awk '条件1{动作1} 条件2{动作2}...' filename
|
||
```
|
||
* awk处理行数据时分割字段默认用'空格'或者‘tab'进行分割
|
||
* awk内建变量:
|
||
1. NR: 当前行的行号
|
||
2. NF: 当前行字段的数量
|
||
3. FS: 目前的分隔字符,默认是空格
|
||
* 若想要在动作中定义FS,必须在定义FS的动作之前加上BEGIN关键字,表示预先设定FS。否则,FS的设定对第一行不会生效,因为只有将第一行读入并按默认的FS进行分割后,为FS赋值的动作才会执行
|
||
```shell
|
||
#例如,为awk命令定义BEGIN 的FS赋值动作
|
||
cat /etc/passwd | head -n 10 | awk 'BEGIN{FS=":";}
|
||
{print NR "\t" $1 "\t" $3 ""}'
|
||
```
|
||
* uniq命令:
|
||
uniq命令将整合相邻且相同的行为一行,通常配合sort使用来消去排序后重复的行,若指定-c选项,则在字符串前加上一列表示各行字符串的频数
|
||
* sort命令:
|
||
* -r : 反向排序
|
||
* -f : 忽略大小写差异
|
||
* -n : 使用纯数字来排序
|
||
* -b : 忽略前面的空格部分
|
||
* -f : 针对特定的域来进行排序
|