Python 打印特定行
我有以下格式的数据:Python 打印特定行,python,grep,Python,Grep,我有以下格式的数据: 1 "hi" 2 "hello" 3 "abc" 4-"def" 5(-hjs 6 "there" abc" "def" 7 "there1" 选项卡将1和“hi”分隔开。另一个选项卡将2和“hello”分开,而在3和“abc”之间没有这样的分开。与4-“def”和5(-hjs)类似 我想删除所有那些制表符不分隔数字和字符串的行 1 "
1 "hi"
2 "hello"
3 "abc"
4-"def"
5(-hjs
6 "there"
abc" "def"
7 "there1"
选项卡将1和“hi”分隔开。另一个选项卡将2和“hello”分开,而在3和“abc”之间没有这样的分开。与4-“def”和5(-hjs)类似
我想删除所有那些制表符不分隔数字和字符串的行
1 "hi"
2 "hello"
6 "there"
7 "there1"
我尝试使用grep“^*[0-9]”只存储那些包含数字的行(虽然它删除了abc,但无法删除其余的)。但是,它删除了所有行。是否可以使用linux命令/python只删除指定的行
我试着在python中通过检查是否存在拆分来实现这一点。但拆分对于形式为“abc”def的模式不起作用
我用一个制表符('\t')制表..那么我如何合并它…你能解释一下吗
grep '^[0-9]*\s\{4\}'
(前提是使用4个空格进行制表,如粘贴的示例所示)。试试看
grep '^[0-9]*\s\{4\}'
(前提是使用4个空格进行制表,如粘贴的示例所示)。使用:
输出:
>>>
1 "hi"
2 "hello"
6 "there"
7 "there1"
说明:
正则表达式模式尝试匹配该行
:这表示字符串(或行)的开头^
:这意味着匹配单个数字字符\d
:这意味着匹配制表符\t
:这意味着至少匹配一次非空白字符\S+
r'^\d\s{4,}\s+'
这将添加一个\s{4,}
,这意味着至少有4次空白字符(这是大多数表格的默认字符长度)
您还可以将它们组合成一个正则表达式,用于处理制表符转换为空白的情况:r'^\d(\t |\s{4,})\s+
这将添加一个组,该组将查找覆盖所有基础的\t
或\s{4,}
。使用:
输出:
>>>
1 "hi"
2 "hello"
6 "there"
7 "there1"
说明:
正则表达式模式尝试匹配该行
:这表示字符串(或行)的开头^
:这意味着匹配单个数字字符\d
:这意味着匹配制表符\t
:这意味着至少匹配一次非空白字符\S+
r'^\d\s{4,}\s+'
这将添加一个\s{4,}
,这意味着至少有4次空白字符(这是大多数表格的默认字符长度)
您还可以将它们组合成一个正则表达式,用于处理制表符转换为空白的情况:r'^\d(\t |\s{4,})\s+
这将添加一个组,该组将查找\t
或\s{4,}
。它涵盖了您的所有基础。如果您的版本支持perl
正则表达式语法,您可以像这样使用它:
grep -P '^\d+\t+\S+' infile
它从行首(^
)匹配一个数字(\d+
),后跟一个或多个制表符(\t+
),后跟一个非空格字符(\S+
)
它产生:
1 "hi"
2 "hello"
6 "there"
7 "there1"
如果您的版本支持perl
正则表达式语法,您可以像这样使用它:
grep -P '^\d+\t+\S+' infile
它从行首(^
)匹配一个数字(\d+
),后跟一个或多个制表符(\t+
),后跟一个非空格字符(\S+
)
它产生:
1 "hi"
2 "hello"
6 "there"
7 "there1"
使用
awk
:
awk '/^[0-9]+\t/' file
使用
awk
仅打印以一个或多个数字[0-9]+
开头,后跟选项卡\t
的行:
awk '/^[0-9]+\t/' file
只打印以一个或多个数字
[0-9]+
开头,后跟制表符\t
的行。我正在使用制表符('\t')。因此,我如何将其合并…请您解释一下,grep
在基本正则表达式语法(BRE)中的用法支持\s
?@Birei但是在itI中我在哪里合并“\t”呢?我正在使用制表符('\t')。那么我该如何合并它呢…你能解释一下吗?grep
的基本正则表达式语法(BRE)支持\s
?@Birei但是在itI中我在哪里合并“\t”呢?我正在使用制表符('\t'))对于制表..那么我如何合并…您能解释一下吗?对不起,我没有使用5个空格字符,而是使用“\t”作为tab@JannatArora好的,您可以在正则表达式中使用\t
。我使用的是一个制表符('\t')对于制表..那么我如何合并…您能解释一下吗?对不起,我没有使用5个空格字符,而是使用“\t”作为tab@JannatArora好的,您可以在正则表达式中使用\t
。