我有一个大约有800万行的文本文件。我需要删除其中包含单个字符的所有行。例如
This is
the
text file
I
wrote
我想删除其上带有代词“I”的整行。奖励指向可以在linux命令行上执行此操作的人。
答案 0 :(得分:9)
这是一个尝试:
awk 'length>1' file
如果您不想删除空白行(零字符)
awk 'length!=1' file
如果你的行上有空格(你不想算作字符):
awk '{gsub(/[[:space:]]/,"")}length!=1' file
答案 1 :(得分:4)
sed也可以这样做:
sed '/^.$/d' inputFile
将输出存储在新文件中:
sed '/^.$/d' inputFile > outputFile
或用于文件内编辑:
sed -i '/^.$/d' inputFile
答案 2 :(得分:3)
您只需要:
grep '..' file
除非你想保留空行,否则它将是:
grep -v '^.$' file
答案 3 :(得分:0)
由shell完成
#! /usr/bin/bash
while read line
do
if [[ "${#line}" != 1 ]]; then
echo $line
fi
done < file
答案 4 :(得分:0)
的bash
while read -r line
do
if [ ${#line} -gt 1 ] ;then
echo $line
fi
done < file
答案 5 :(得分:0)
如果您的系统上有Ruby
ruby -ne 'puts $_ if $_.chomp.length >1 ' file