我想使用正则表达式替换文件中每一行文本部分的部分:
示例:
SSM_289|19wer12.stf_ALSO010100002_1 # 2567 # 2451 # 1 # OK=3_9;tremid=22;stretu_myce=DSA;tfs_ertsg=TDFFAR/TTGGAT;fsr_ssuat=23-16hg;te_donh=2.117
some texts...............
some texts...............
some texts...............
预期产出:
SSM_289| [19wer12.stf_ALSO010100002_1]
some texts...............
some texts...............
some texts...............
我的尝试无效:
perl -pi -e "s/^(\SSM_\d*\|)(\w*\.stf_[a-z][A-Z][0-9]*_\d*)\s\#\S*/$1 [$2]/g" file.txt
建议让代码正常工作。
谢谢
答案 0 :(得分:2)
或使用此模式
\|([^# ]+).*
并替换为|[$1]
Demo
\| # "|"
( # Capturing Group (1)
[^# ] # Character not in [^# ]
+ # (one or more)(greedy)
) # End of Capturing Group (1)
. # Any character except line break
* # (zero or more)(greedy)
答案 1 :(得分:1)