我有一个像这样的单行文件:class =“Foo”无关的东西(+ string)无关的东西 class =“Foo”无关紧要东西(+ string)无关的东西 ...
我需要收集里面的每个字符串(),行中最多有200个字符串。
我只能考虑在每个课程和正在运行的egrep之后添加一个新行。
我使用sed's / class =“Foo”/ \ n / g'在每个类之后创建新行。然后我使用egrep'(+。*)'过滤掉我需要的所有字符串然后再次sed以杀死()和+。
答案 0 :(得分:0)
然后这是我的第二次拍摄: 我是一个文件,我只包含一行,但是很长。该行内有多个类
class="Foo"
每个班级之后都有这样的地方
(+Bar)
这些图案之间是随机数字字母和符号,最多可重复200次。 (+。*)的内部对于每次重复都是不同的。
我需要消除文件中的所有内容,但包含在(+)中的字符串,并在每个字符串后创建一个换行符。
所以我得到这样的输出
bar1
bar2
...
barn
现在我这样做:
sed 's/class="Foo"/\n/g'
所以每个班级都有一行。
egrep '\(+.*\)' -o
要找到里面的字符串(+),之后2次sed要杀死(和)。
它完全符合我的要求,但我想知道是否有更好的方法。