shell过滤空行和注释
时间: 2023-09-28 07:10:19 浏览: 66
可以使用以下命令过滤空行和注释:
```sh
grep -Ev '^\s*($|#)' input_file
```
其中:
- `grep -E` 表示使用正则表达式匹配模式;
- `-v` 表示反选,即只输出不匹配的行;
- `'^\s*($|#)'` 表示匹配以零个或多个空白字符开头,后面是空行或以 # 开头的注释行;
- `input_file` 表示输入文件名。
这个命令会输出去掉空行和注释后的内容。
相关问题
shell 去掉空行
在 shell 中,要去掉文本文件中的空行,你可以使用 `sed` 命令,这是一个强大的流编辑器,常用于文本处理。以下是一个简单的例子:
```bash
sed '/^$/d' input.txt > output.txt
```
这里解释一下命令:
- `/^$/`: 这是一个正则表达式模式,`^` 表示行首,`$` 表示行尾,`/^$/` 匹配空行(只有换行符)。
- `d`: 删除匹配到的行。
- `input.txt`: 你的原始文件名。
- `>`: 输出重定向,表示将删除空行后的结果写入到 `output.txt` 文件中。
运行这个命令后,`input.txt` 文件中的所有空行会被移除,并保存到新的 `output.txt` 文件中。
如果你不想创建新的文件,可以直接在原文件上进行修改,用 `-i` 参数:
```bash
sed -i '/^$/d' input.txt
```
这会直接在 `input.txt` 文件上操作并替换空行。
shell统计空行以外的行数
可以使用 `grep` 命令配合 `-v` 选项来过滤掉空行,再使用 `wc` 命令计算非空行数。具体命令如下:
```
grep -v '^$' file.txt | wc -l
```
其中,`^$` 表示匹配空行,`-v` 表示反向匹配,即匹配非空行。`file.txt` 是你要统计的文件名。`wc -l` 表示计算行数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)