使用shell输出包含"Checking patch"字段的行中每行第一个/之前的内容,如果内容是apps_proc,则该行输出第三个/前得内容
时间: 2024-03-09 19:45:02 浏览: 139
可以使用以下的shell脚本来实现:
```
grep "Checking patch" textfile.txt | cut -d'/' -f1,2 | awk -F'/' '{if ($1 == "apps_proc") print $3; else print $1}'
```
这个脚本首先使用`grep`命令查找包含"Checking patch"字段的行。然后使用`cut`命令以"/"为分隔符,只保留每行的第一个和第二个字段。接着使用`awk`命令来判断第一个字段是否是"apps_proc",如果是,则输出第三个字段;否则输出第一个字段。最终的输出结果是所有符合条件的行中每行第一个"/"之前的内容,并且如果第一个字段是"apps_proc",则输出第三个"/"之前的内容。
相关问题
使用shell输出包含"Checking patch"字段的行中判断是否包含apps_proc/src/kernel-5.10,是则输出apps_proc/src/kernel-5.10不是则输出每行第一个/之前的内容
可以使用以下的shell脚本来实现:
```
grep "Checking patch" textfile.txt | awk -F'/' '{if ($0 ~ /apps_proc\/src\/kernel-5.10/) print "apps_proc/src/kernel-5.10"; else print $1}'
```
这个脚本首先使用`grep`命令查找包含"Checking patch"字段的行。然后使用`awk`命令来进行判断。如果这一行中包含"apps_proc/src/kernel-5.10",则输出"apps_proc/src/kernel-5.10";否则输出每行的第一个"/"之前的内容。其中`$0`表示整行内容,`~`表示匹配,`/`需要进行转义。
最终输出结果是所有符合条件的行中判断是否包含"apps_proc/src/kernel-5.10",如果包含则输出该字符串,否则输出每行第一个"/"之前的内容。
使用shell输出包含"Checking patch"字段的行中每行第一个/之前的内容,并去掉输出内容中Checking patch字段的命令
可以使用grep、awk和sed命令结合实现该功能。假设要输出文件file.txt中包含"Checking patch"字段的行中每行第一个/之前的内容,并去掉输出内容中Checking patch字段,可以使用以下命令:
```
grep "Checking patch" file.txt | awk -F/ '{print $1}' | sed 's/Checking patch//g'
```
其中,grep "Checking patch" file.txt表示找出文件file.txt中包含"Checking patch"字段的行,然后通过管道将结果传递给awk命令。-F/表示以/作为字段分隔符,$1表示输出每行中的第一个字段。最后,通过管道将结果传递给sed命令,将输出内容中的Checking patch字段替换为空字符串。执行该命令后,将输出包含"Checking patch"字段的行中每行第一个/之前的内容,并去掉输出内容中Checking patch字段。
阅读全文