Regex 在AWK或SED中找到带有正则表达式的字符串

Regex 在AWK或SED中找到带有正则表达式的字符串,regex,sed,awk,Regex,Sed,Awk,例如,我想在文件中查找以下字符串9Stest1.test2D9。然后我想剪切前两个字符和最后两个字符,最后在前后打印文本。在两条分开的线上 示例文本: 7U8vTest(#G-HLjYM6QqJj1j"7MFx$^Qd .f@alU|A#Z<inCWV6a=L?o`A5vIod"%Mm+YW1RM@,L;aN r^n<&)}[??!VcVIV**9Stest1.test2D9**94EN~yK,$lU=9?UT.[ e`)G:FS.nGz%?@~k!20aLJ^PU-[@}0

例如,我想在文件中查找以下字符串9Stest1.test2D9。然后我想剪切前两个字符和最后两个字符,最后在前后打印文本。在两条分开的线上

示例文本:

7U8vTest(#G-HLjYM6QqJj1j"7MFx$^Qd
.f@alU|A#Z<inCWV6a=L?o`A5vIod"%Mm+YW1RM@,L;aN
r^n<&)}[??!VcVIV**9Stest1.test2D9**94EN~yK,$lU=9?UT.[
e`)G:FS.nGz%?@~k!20aLJ^PU-[@}0W\ !8x
cujOmEK"1;!cI134lu%0-A +/t!VIf?8uT`!
aC1QAQY>4RE$46iVjAE^eo5yR|
1?/T?<H5,%G~[|9I/c&8MY$O]%,UYQe{!{Bm[rRC[
aHC`<m?BUau@N_O>Yct.MXo[>r5^uV&26@MkYB'Kiu\Y
K(*}ldO:ZQnI8t989fi+
我用下面的代码
grep“[0-9][a-zA-Z]\+\.[a-zA-Z]\+[0-9]”
找到字符串。现在我可以用
cut命令
剪切前两行,但最后两行呢? 我想用
AWK
可以很容易地解决我的问题,但我不知道如何解决。
谢谢

如果有帮助,请查看此行:

kent$  grep -Po '(?<=9S).*?(?=D9)' file
test1.test2

kent$grep-Po'(?如果有帮助,请参阅此行:

kent$  grep -Po '(?<=9S).*?(?=D9)' file
test1.test2

kent$grep-Po'(?这取决于搜索方式和内容。如
**

awk -F"**"  '{a=substr($2,3,length($2)-4)} a {print a}'
test1.test2
dO:ZQnI8t989f

这取决于搜索方式和内容。如
**

awk -F"**"  '{a=substr($2,3,length($2)-4)} a {print a}'
test1.test2
dO:ZQnI8t989f

您希望如何搜索您的字符串,直接搜索它或在
***
等之间的任何文本???您希望如何搜索字符串,直接搜索它或在
***
等之间的任何文本???可能将输出传输到
tr.'\n'
以获得所需格式的结果?@devnull-thx,更新了答案,是吗没有看到OP添加了有问题的输出部分。可能将输出管道连接到
tr.''\n'
以获得所需格式的结果?@devnull thx更新了答案,没有看到OP添加了有问题的输出部分。
awk -F"**"  '{a=substr($2,3,length($2)-4)} a {print a}'
test1.test2
dO:ZQnI8t989f