![使用 SED 打印两个图案之间的线条](https://linux22.com/image/94309/%E4%BD%BF%E7%94%A8%20SED%20%E6%89%93%E5%8D%B0%E4%B8%A4%E4%B8%AA%E5%9B%BE%E6%A1%88%E4%B9%8B%E9%97%B4%E7%9A%84%E7%BA%BF%E6%9D%A1.png)
我有一个文件,内容如下所示:
***************Encrypted String***************
ezF7LcHO0Zlb+8kkBeIwtA==
**********************************************
我只需要从上面获取加密的密码。我用谷歌搜索答案,我得到了这个例子(如下),但它不起作用:
sed -n '/***************Encrypted String***************/,/**********************************************/p' $file
我尝试过,但没有成功
答案1
这里的问题可能是这*
是一个正则表达式运算符,因此您必须对其进行转义\*
才能将其视为文字。如果没有这种适应,您引用文字的示例和建议BEGIN
都会END
失败。
***************Encrypted String*************** ezF7LcHO0Zlb+8kkBeIwtA== **********************************************
要提取第二行,您可以使用以下任一方法:
sed -n '0,/\*Encrypted String\*/d;p;q' "$file"
sed -n 2p "$file"
第一个匹配*Encrypted String*
,然后打印下一行。请注意,*
字符的书写方式是为了\*
确保将它们视为字面星号。第二个仅打印文件的第二行。