使用shell将txt中除了包含thundercomm字段以外的行全部删除
时间: 2024-03-21 15:39:29 浏览: 20
可以使用grep和sed命令结合使用来实现这个功能。具体的命令如下:
```
grep 'thundercomm' file.txt > temp.txt
sed -i '/thundercomm/!d' file.txt
mv temp.txt file.txt
```
这个命令的作用是先使用grep命令将包含'thundercomm'字段的行提取到temp.txt文件中,然后使用sed命令将原始的file.txt文件中除了包含'thundercomm'字段以外的行全部删除,最后将temp.txt文件重命名为file.txt。这样就实现了将txt中除了包含thundercomm字段以外的行全部删除的功能。
相关问题
使用shell判断txt中如果包含error字段就exit,没有就输出ok
可以使用以下的shell脚本来实现:
```shell
if grep -q "error" file.txt; then
echo "error found, exiting"
exit 1
else
echo "ok"
fi
```
其中,`grep -q "error" file.txt` 用于判断文件中是否包含 error 字段,如果包含,`if` 语句中的代码块将被执行,输出 "error found, exiting" 并退出程序;否则,输出 "ok"。
使用shell输出文本中包含Checking patch字段行得每行第一个/之前得字段
可以使用grep和awk命令结合实现该功能。假设要输出文件file.txt中包含"Checking patch"字段的行中每行第一个/之前的内容,可以使用以下命令:
```
grep "Checking patch" file.txt | awk -F/ '{print $1}'
```
其中,grep "Checking patch" file.txt表示找出文件file.txt中包含"Checking patch"字段的行,然后通过管道将结果传递给awk命令。-F/表示以/作为字段分隔符,$1表示输出每行中的第一个字段。执行该命令后,将输出包含"Checking patch"字段的行中每行第一个/之前的内容。