linux过滤旧文件中的空行和注释行剩余内容组成新文件

一、说明

在某些场景下我们想要将旧文件中空行和注释行过滤掉,将产生实际效果的行保留。

比如redis提供的配置示例文件中有很多用于说明的空行和注释行,我们想把产生实际效果的配置行筛选出来组成新的简洁的配置文件。

二、命令

grep -Ev "^$|#" old_file_name > new_file_name

grep--过滤命令

-E--使用正则表达示进行匹配

-v--剔除匹配的项(默认是筛选匹配的项)

^--开头匹配

$--代表空行

|--正则中的或运算

#--#开头行

old_file_name--要对其内容进行过滤的文件

new_file_name--过滤出的内容保存到的文佧

三、示例

参考:

https://www.zhihu.com/question/19795238

原文地址:https://www.cnblogs.com/lsdb/p/8341874.html

时间: 2024-08-02 00:31:04

linux过滤旧文件中的空行和注释行剩余内容组成新文件的相关文章

.NET Core中复制源文件夹下的所有内容到新文件夹

.NET Core中没有原生的复制文件夹方法,我们可以自己写个: 新建一个.NET Core控制台项目,示例代码如下: using System; using System.IO; namespace CoreIO { class Program { /// <summary> /// 复制源文件夹下的所有内容到新文件夹 /// </summary> /// <param name="sources">源文件夹路径</param> ///

python文件中的__name__==&#39;__main__&#39;的使用及调用其他py文件中的函数方法

最近学习python的时候经常会看到好多py文件中都有if _name_ == '_main_': 这句话,所以就花点儿时间来研究一下,总结了一下使用方法及原则. 平时我们使用python IDE编写py程序的时候 一般是很少用到if name == 'main':这句话的,因为我们在运行py文件时,没有牵扯到其他目录下自定义的py文件,所以不用写这句话就可以无忧地执行当前py文件中的函数,但 想想 如果要是需要调用其他的py文件中的自定义函数呢?这就需要使用if name == 'main':

java简单统计.java文件中的有效代码行,空行,注释行

package regxdemo; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class CountFile { /** * @param args */ static int cntCode=0, cntNode=0, cntSpace

shell 脚本---每隔几个小时查看日志文件中包含某些字符串的行数

在linux生产环境下,有如下这样的一个平常运维需要的工作. 每隔一段时间,比如两个小时,就要对每秒都要产生日志的日志文件(这里假设为testfile.out,其绝对路径为/home/panlm/shellpra/testfile.out)进行一个操作,这个操作是将日志中包含某些字符串的行给单独打印出来,并重新放在一个文件(这里的文件假设为out.log)中.这些需要匹配的字符串可以按这种方式表示"0x216000ab"其中ab为01到18的连续整数. 实现这样一个要求的做法主要有两步

python统计代码总行数(代码行、空行、注释行)

我们在工作或学习代码的过程中,经常会想知道自己写了多少行代码,今天在项目环境写了个脚本统计了项目代码的数量. 功能: 1.统计代码总行数 2.统计空行数 3.统计注释行数 # coding=utf-8 import os #定义代码所在的目录 base_path = '/home/yhl/workspace/xtp_test' #在指定目录下统计所有的py文件,以列表形式返回 def collect_files(dir): filelist = [] for parent,dirnames,fi

linux命令(44):去掉 所有文件中的空行

方法一:利用grep grep -v '^\s*$' test.txt 注:-v表示将匹配的结果进行反转,正则表达式匹配空行.(空行可包括空格符制表符等空白字符) 方法二:利用sed sed '/^\s*$/d' test.txt 注:d代表删除该行 方法三:利用awk awk NF test.txt 注:NF代表当前行的字段数,空行的话字段数为0,被awk解释为假,因此不进行输出. 以上三种方式均可处理包含空白字符(空格符,制表符等)的空行. 方法四:若空行均由'\n'造成,则还可以利用tr命

过滤文件中的空行解决方法

方法1:基础方法 [[email protected] ~]# grep -v "^$" oldboy.txt [[email protected] ~]# sed '/^$/d' oldboy.txt [[email protected] ~]# awk '!/^$/' oldboy.txt 其中, ^$表示空行. Grep -v 表示排除. Sed //d 表示删除 Awk !// 表示排除或取反. 方法2:考虑到可能有空格方法 [[email protected] ~]# gre

请问如何把文件中的空行过滤掉(要求命令行实现)

解答: 创建实战文件: 1 [root@zhaokang ~]# vi test.txt 2 3 abc 4 5 English 6 7 8 Private! 9 ~ 26 ~ 27 "test.txt" [New] 6L, 24C written 28 [root@zhaokang ~]# cat test.txt 29 abc 30 31 English 32 33 34 Private! 方法一: 1 [root@zhaokang ~]# grep -v "^$&quo

Linux:从文件中搜索关键字并显示行数(cat,grep函数)

假如有test1.txt的格式如下图所示: 有test2.txt的内容如下: 现需将test2.txt含有的关键字的行搜索出来并显示行数 则可以用到命令: cat test1.txt | grep -nf test2.txt 运行后,效果如下: 36840733和36909134表示含有这两个关键字所在的行数.