没有多余的装饰。
先决条件:您使用bash之类的命令行界面
- 将以下内容复制并粘贴到sample.txt文件。 使用
ls -l可以很容易地自己生成。
-rw-r--r-- 1名汤姆员工3月9日22:08!
drwx ------ @ 3名tom员工96 Jan 4 11:32应用程序
drwx ------ + 7汉娜员工224 Apr 14 00:32桌面
drwx ------ + 5位tom员工160 Jan 2 11:10 Documents
drwx ------ + 143 tom员工4576 Apr 13 15:04下载
drwx ------ @ 8位tom员工256 Mar 21 01:23 Dropbox
drwxr-xr-x 4个tom员工128 Jan 3 14:17 IdeaProjects
drwx ------ @ 64位员工2048 Jan 19 23:24图书馆
drwx ------ + 3名tom员工96 Jan 2 09:18电影
drwx ------ + 3 john员工96 Jan 2 09:18音乐
drwx ------ + 3位tom员工96 Jan 2 09:18图片
drwxr-xr-x + 4位tom员工128 Jan 9 16:00 Public
drwxr-xr-x 24 tom员工768 Jan 12 09:41 anaconda3
drwxr-xr-x 9 tom员工288 Jan 7 18:26代码
drwxrwxr-x 21 root员工672 Apr 13 15:30 git
-rw-r--r-- 1个tom员工1519年4月5日13:49 sagemaker_batch
-rw-r--r-- 1 john staff 0 Apr 15 13:08 sample.txt
drwxr-xr-x 2 tom员工64 Jan 4 14:43 sql
-rw-r--r-- 1个tom员工132 Apr 15 07:33 temp
drwxr-xr-x 12 tom员工384 Apr 15 06:14测试
awk'/ search_pattern / {action_to_take_on_matches; another_action; }'file_to_parse
- 打印出文本文件的所有行
awk'{print}'sample.txt
您可能会注意到这与cat sample.txt是相同的
- 打印与图案匹配的线
请注意,我们传递了两组/ serach_pattern /和{action}
awk'/ root / {print} / hannah / {print}'sample.txt
- 仅打印特定字段
默认情况下,Awk拆分由空格字符分隔的记录,并将其存储在$ n变量中。 如果该行有4个单词,它将存储在$ 1,$ 2,$ 3和$ 4中。 尝试使用以下命令查看打印出来的内容。
awk'{print $ 2,$ 5}'sample.txt
- 使用
if (condition1 && condition2)筛选两个条件
此外,该示例以相反的顺序-r.按第二项-nk2对结果进行排序-r. 。 用&& ||替换&& 如果您需要OR条件。
awk'{if($ 3 ==“ tom” && $ 5> 10){print $ 3,$ 5}}'sample.txt | 排序-nk2 -r
- 部分字符串匹配和不区分大小写的搜索
技巧是~代表部分搭配,而towlower代表较低的外壳。
awk'tolower($ 9)〜/ sage / {print}'sample.txt
- 创建带有标题和结尾的报告
awk'BEGIN {打印“名称\ t \ Count \ t \ time”}
{打印$ 3,“ \ t”,$ 5,“ \ t”,$ 8}
END {打印“报告已生成\ n ------------------”}''sample.txt