[转帖]linux删除文本文件空白行

linux,删除,文本文件,空白行 · 浏览次数 : 0

小编点评

**sed 命令** ```bash sed -i '/^$/d' filename.txt ``` **解释:** * `^` 和 `$` 分别匹配字符串的开头和结尾。 * `/^$/d` 这句正则表达式匹配空白行,即没有任何字符的空白字符。 * `-i` 参数表示直接在原文件中进行修改。 **示例:** 假设 filename.txt 文件中包含以下内容: ``` hello world blank line another line ``` 使用上面的sed命令将删除所有空白行,结果文件的内容将为: ``` hello world another line ``` **grep 命令** ```bash grep -v '^$' filename.txt > newfile.txt ``` **解释:** * `grep` 命令使用 `-v` 参数表示反向选择,匹配不匹配正则表达式的行。 * `'^$'` 正则表达式匹配空白行,即仅匹配空白字符。 * `>` 表示将匹配到的行输出到新的文件中。 **示例:** 假设 filename.txt 文件中包含以下内容: ``` hello world blank line another line ``` 使用上面的grep命令将删除所有空白行,结果文件的内容将为: ``` hello world another line ``` **awk 命令** ```bash awk NF filename.txt > newfile.txt ``` **解释:** * `NF` 表示输出非空行。 * `filename.txt` 输入文件路径。 * `>` 表示将匹配到的行输出到新的文件中。 **示例:** 假设 filename.txt 文件中包含以下内容: ``` hello world blank line another line ``` 使用上面的awk命令将删除所有空白行,结果文件的内容将为: ``` hello world another line ``` **perl 命令** ```bash perl -i -ne 'print if /\\S/' filename.txt ``` **解释:** * `perl` 命令使用 `-i` 参数直接在原文件中进行修改。 * `-ne` 用于非匹配正则表达式的行。 * `print if /\\S/` 这句正则表达式匹配非空白字符。 * `filename.txt` 输入文件路径。 **示例:** 假设 filename.txt 文件中包含以下内容: ``` hello world blank line another line ``` 使用上面的perl命令将删除所有空白行,结果文件的内容将为: ``` hello world another line ```

正文

linux删除文本文件空白行
https://www.zhihu.com/people/chen-kai-84-54-75

 

sed命令

在Linux中,可以使用sed命令批量删除文本中的空白行。以下是一个示例命令:

sed -i '/^$/d' filename.txt

这个命令将会删除 filename.txt 文件中所有的空白行,并且直接在原文件中进行修改, -i 参数表示直接在文件中进行修改。

解释一下,sed命令可以用来编辑文本,-i表示直接在原文件中进行修改,/^$/d表示删除空白行。具体来说,/^$/ 是一个正则表达式,表示匹配空白行,d则表示删除匹配到的行。

如果你要处理多个文件,可以使用通配符来匹配文件名,例如:

sed -i '/^$/d' *.txt

这个命令将会匹配所有以 .txt 结尾的文件,并且删除其中的空白行。

grep 命令

可以使用 grep 命令来过滤掉空白行,然后将结果输出到一个新文件中。具体命令如下:

grep -v '^$' filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到 newfile.txt 文件中。 -v 参数表示反向选择,也就是选择不匹配正则表达式的行,'^$' 表示匹配空白行。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

grep -v '^$' *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到 newfile.txt 文件中。

还可以使用 grep 命令和正则表达式来删除空白行。以下是一个示例命令:

grep -vE '^[[:space:]]*$' filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中的所有空白行删除。-v 参数表示反向选择,也就是选择不匹配正则表达式的行,-E 参数表示使用扩展的正则表达式,'^[[:space:]]*$' 表示匹配只包含空白字符的行。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

grep -vE '^[[:space:]]*$' *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中的所有空白行删除。

awk 命令

awk 命令也可以用来删除空白行。以下是一个示例命令:

awk NF filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到 newfile.txt 文件中。NF 表示输出非空行,也就是只输出有内容的行。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

awk NF *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到 newfile.txt 文件中。

tr 结合 grep 命令

可以使用 tr 命令将空白行替换为其他字符,然后使用 grep 命令过滤掉这些字符。具体命令如下:

tr -s '\n' < filename.txt | grep -v '^$' > newfile.txt

这个命令将会将 filename.txt 文件中的所有空白行替换为一个换行符,然后使用 grep 命令过滤掉空白行。-s 参数表示压缩连续的换行符为一个换行符,'^$' 表示匹配空白行。

perl 命令

可以使用 perl 命令来删除空白行。以下是一个示例命令:

perl -i -ne 'print if /\S/' filename.txt

这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到原文件中。 -i 参数表示直接在原文件中进行修改,/\S/ 表示匹配非空白字符。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

perl -i -ne 'print if /\S/' *.txt

这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到原文件中。

paste 命令

可以使用 paste 命令将多个文件合并为一个文件,并且去掉空白行。以下是一个示例命令:

paste -s -d '\n' filename.txt > newfile.txt

这个命令将会将 filename.txt 文件中的所有行合并为一行,并且在每行之间加上一个换行符,然后输出到 newfile.txt 文件中。-s 参数表示将多个文件合并为一个文件,-d '\n' 表示在每行之间加上一个换行符。

如果要处理多个文件,可以使用通配符来匹配文件名,例如:

paste -s -d '\n' *.txt > newfile.txt

这个命令将会将所有以 .txt 结尾的文件中的所有行合并为一个文件,并且在每行之间加上一个换行符,然后输出到 newfile.txt 文件中。

与[转帖]linux删除文本文件空白行相似的内容:

[转帖]linux删除文本文件空白行

https://zhuanlan.zhihu.com/p/627152095 sed命令 在Linux中,可以使用sed命令批量删除文本中的空白行。以下是一个示例命令: sed -i '/^$/d' filename.txt 这个命令将会删除 filename.txt 文件中所有的空白行,并且直接在

[转帖]linux删除文本文件空白行

linux删除文本文件空白行https://www.zhihu.com/people/chen-kai-84-54-75 sed命令 在Linux中,可以使用sed命令批量删除文本中的空白行。以下是一个示例命令: sed -i '/^$/d' filename.txt 这个命令将会删除 filena

[转帖]Linux常用命令:利用sed命令删除文件的特定行

http://www.dbs724.com/12806.html 前言 正常来说,我们想要删除文件中的某些行内容,一般都是先打开这个文件,然后找到要删除的内容,再然后选中这些行并按删除键进行删除,这在数据量很少时是没有问题的。但是,一旦文件中的行数据非常多,而且数据冗杂的情况下,你还要用上面的方法去

[转帖]Linux 学习笔记: shell中${} 的用法,删除&替换

Linux 学习笔记: shell中${} 的用法,删除&替换 字符串的删除 echo${i##*/} 删除 / 前的所有内容 ## 删除 tt=$i echo{tt:22} #取的22位以后的所有字符 file=/dir1/dir2/dir3/my.file.txt ${file#/}:删掉第一个

[转帖]Linux环境变量高级用法

https://www.cnblogs.com/apink/p/17049223.html 变量删除 设置方式功能 ${var#key} 从左往右查找key,删除最短匹配内容 ${var##key} 从左往右查找key,删除最长匹配内容 ${var%key} 从右往左查找key,删除最短匹配内容 $

[转帖]Linux命令之tr命令

一、命令介绍 tr 命令用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,执行转换(或者压缩、删除)处理,将结果输出到标准输出设备。 二、使用示例 0、示例文件 [root@test1 test]# cat 1.txt The string is used to describe the

[转帖]Linux:crontab要点整理(表达式,转义,权限管理,日志)

https://www.jianshu.com/p/fd46652f247e 摘要:Linux,crontab整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志 crontab简介 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任

[转帖]linux日志 audit

https://www.jianshu.com/p/3e8a1d5d5cb9 我们知道在Linux系统中有大量的日志文件可以用于查看应用程序的各种信息,但是对于用户的操作行为(如某用户修改删除了某文件)却无法通过这些日志文件来查看,如果我们想实现监管企业员工的操作行为就需要开启审计功能,也就是aud

[转帖]linux下df查看空间已经占用%100,但是找不到大文件的解决方法

https://www.cnblogs.com/leffss/p/8571685.html 有时候在linux下会遇到这种情况:df查看空间已经占用%100,但是找不到大文件,怎么回事呢,经过网上查找资料,得到解决方法: 1.使用lsof查看已删除但未释放的文件 lsof -n | grep del

[转帖]Linux—vi/vim批量注释及取消注释

https://www.jianshu.com/p/45c252e9d2b6 应用场景 在开发场景中,经常遇到对一些配置文件进行注释,当然如果确定不用的时候我们可以通过vim中的D命令进行删除。当需要对配置文件中的一些配置进行批量注释#的时候,我们可以通过下面的方式进行。 语法格式 批量注释 :fr