删除文件空行

Posted on Posted in bash

删除文件中的空行

sed

  • sed: 该命令本身。
  • //: 标记匹配范围。
  • ^: 匹配字符串开头。
  • $: 匹配字符串结尾。
  • d: 删除匹配的字符串。
sed -i '/^$/d' file.txt
# 删除带有“文字”的行
sed -i '/文字/d' file.txt

grep

  • grep: 该命令本身。
  • .: 替换任意字符。
  • ^: 匹配字符串开头。
  • $: 匹配字符串结尾。
  • E: 使用扩展正则匹配模式。
  • e: 使用常规正则匹配模式。
  • v: 反向匹配。
grep . file.txt
grep -Ev "^$" file.txt
grep -v -e '^$' file.txt

awk

  • awk: 该命令本身。
  • //: 标记匹配范围。
  • ^: 匹配字符串开头。
  • $: 匹配字符串结尾。
  • .: 匹配任意字符。
  • !: 删除匹配的字符串。
awk NF file.txt
awk '!/^$/' file.txt
awk '/./' file.txt

cat && tr

  • cat: cat 命令本身。
  • tr: tr 命令本身。
  • |: 管道符号。它可以将前面的命令的标准输出作为下一个命令的标准输入。
  • s: 替换标数据集中任意多个重复字符为一个。
  • \n: 添加一个新的换行。
cat file.txt | tr -s '\n'

perl

  • perl: perl 命令。
  • n: 逐行读入数据。
  • e: 执行某个命令。
  • print: 打印信息。
  • if: if 条件分支。
  • //: 标记匹配范围。
  • \S: 匹配任意非空白字符。
perl -ne 'print if /\S/' file.txt

创建指定大小文件

fallocate -l 10M file.txt
truncate -s 10M file.txt
dd if=/dev/zero of=file.txt  bs=10M  count=1
dd if=/dev/zero of=file.txt  bs=1M  count=10
head -c 10MB /dev/zero > file.txt

创建一个文件的几种方法

> file.txt
touch file.txt
echo "123" > file.txt
printf "123\n" > file.txt
cat > file.txt
head -c 0K /dev/zero > file.txt
tail -c 0K /dev/zero > file.txt
truncate -s 0K file.txt
» 转载请注明来源:呢喃 » 删除文件空行

Leave a Reply

Your email address will not be published. Required fields are marked *

6 − six =