超过9个sed组 - 多个线路(仍然使用SED)

时间:2016-05-01 21:47:37

标签: regex string unix sed

如何使用脚本文件将指令的正则表达式分解为多行?

我目前有超过9个正则表达式组,并且仍希望在脚本文件中使用sed。如何分解指令?

由于

我想使用sed -E -f thiscode.txt file.txt

s/([^ ]*) ([^ ]*) ([^,]*), *([^,]*), *([^,]*), *([^.]*), *([^,]*) *([^,]), ([^.]*), *([^,]*) *([^,]), ([^ ]*) *([^,]*) *([^.]*). ([^ ]*)./\2, \1, \3, ``\4," \6} \8,{\10} \6 \12/

根据建议,我删除了/ 5/7和/ 9

sed -E 's/([^ ]*) ([^ ]*) ([^,]*), ([^,]), ([^.]), ([^,]), *([^,]) ([^,]), ([^ ]) ([^,]) ([^.]). ([^ ]*)./\2, \1, \3, ``\4," \5 \6, \7 \5 \9/'

1 个答案:

答案 0 :(得分:0)

sed '/very-long-pattern/ {
    H
    s/.......(ten)(eleven).../\1 \2 .../
    x
    s/(one)(two)...(nine).*/\1 \2 .../
    G
    s/\n//
}'

基本上,您捕获最后9个(< =)组,并将它们存储在保持缓冲区中,然后捕获前9个组,并将它们放在一起,最后删除G引入的换行符。

您可以扩展此脚本以支持任意数量的sed组。