使用 SED 打印两个图案之间的线条

使用 SED 打印两个图案之间的线条

我有一个文件,内容如下所示:

***************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*,然后打印下一行。请注意,*字符的书写方式是为了\*确保将它们视为字面星号。第二个仅打印文件的第二行。

相关内容