以下代码:
#!/bin/bash
osascript -e \
'tell application "Google_Chrome" to tell tab 1 of window 1 \
set t to execute javascript "document.body.innerText" \
end tell' | grep ':'
输出结果:
line1:blah blah
line2:blah 123
line3:
line4:[456] blah
Line5:blah blah
line6:[789]
line 7:
所需的输出:
line1:blah blah
line2:blah 123
line4:[456] blah
我可以使用cut -d : -f1
来获得左侧,cut -d : -f2
来获得恰到好处的一面。但我似乎无法弄清楚如何在保留数据结构的同时删除仅包含数字和/或特殊字符的空白行或行。
据我所知,我正在努力实现的是遵循这套特定的规则:
每个有效的输出行都包含:
(但不是所有包含:
的行都有效)
:
只有小写字母,数字和下划线 [a-z]
[0-9]
和_
允许在:
任何包含<{1}}右侧字母[a-z]
的不的行都应该被丢弃。 (案件并不重要)
任何想法如何实现这一目标?
答案 0 :(得分:3)
将此grep
替换为:
... | grep -E '^[a-z0-9_]+:[^a-zA-Z]*[a-zA-Z]'
line1:blah blah
line2:blah 123
line4:[456] blah
这符合您的要求,[a-z0-9_]
左侧只有:
个字符,[a-zA-Z]
的RHS只允许:
中的至少一个。