Linux 我如何删除“;X-TMASE-MatchedRID“;使用“关键字/值”;白鹭-v“吗;?
我的文件包含如下内容:Linux 我如何删除“;X-TMASE-MatchedRID“;使用“关键字/值”;白鹭-v“吗;?,linux,grep,Linux,Grep,我的文件包含如下内容: X-TM-AS-Product-Ver: IMSVA-8.2.0.1391-8.0.0.1202-22662.005 X-TM-AS-Result: No--0.364-7.0-31-10 X-imss-scan-details: No--0.364-7.0-31-10 X-TMASE-Version: IMSVA-8.2.0.1391-8.0.1202-22662.005 X-TMASE-Result: 10--0.363600-5.000000 X-TMASE-Mat
X-TM-AS-Product-Ver: IMSVA-8.2.0.1391-8.0.0.1202-22662.005
X-TM-AS-Result: No--0.364-7.0-31-10
X-imss-scan-details: No--0.364-7.0-31-10
X-TMASE-Version: IMSVA-8.2.0.1391-8.0.1202-22662.005
X-TMASE-Result: 10--0.363600-5.000000
X-TMASE-MatchedRID: 40jyuBT4FtykMGOaBzW2QbxygpRxo469FspPdEyOR1qJNv6smPBGj5g3
9Rgsjteo4vM1YF6AJbZcLc3sLtjOty5V0GTrwsKpl6V6bOpOzUAdzA5USlz33EYWGTXfmDJJ3Qf
wsVk0UbuGrPnef/I+eo9h73qb6JgVCR2fClyPE+EPh2lMKov3fdtvzshqXylpWZGeMhmJ7ScqBW
z6M5VHW/fngY5M/1HkzhvqqZL61o+ZdBoyruxjzQ==
This is my real text! I need to extract this line!
cat $my_file | egrep -v "^(X-TM-AS)"
| egrep -v "X-imss-scan-details"
| egrep -v "^(X-TMASE-)"
过去由其他人编写的现有代码执行以下行:
cat $my_file | egrep -v "^(X-TM-AS)"
| egrep -v "X-imss-scan-details"
应该删除所有以“X-”开头的键值行
直到今天,上面的代码一直运行良好,因为以X-TMASE
开头的键在过去从未出现过。它已经开始出现在今天的文件中,因此它导致代码在提取有用数据时失败
在新添加的密钥中,我认为X-TMASE-MatchedRID
是最让我们头疼的一个,因为它的值跨越多行:
X-TMASE-MatchedRID: 40jyuBT4FtykMGOaBzW2QbxygpRxo469FspPdEyOR1qJNv6smPBGj5g3
9Rgsjteo4vM1YF6AJbZcLc3sLtjOty5V0GTrwsKpl6V6bOpOzUAdzA5USlz33EYWGTXfmDJJ3Qf
wsVk0UbuGrPnef/I+eo9h73qb6JgVCR2fClyPE+EPh2lMKov3fdtvzshqXylpWZGeMhmJ7ScqBW
z6M5VHW/fngY5M/1HkzhvqqZL61o+ZdBoyruxjzQ==
最初,我尝试了以下方法:
X-TM-AS-Product-Ver: IMSVA-8.2.0.1391-8.0.0.1202-22662.005
X-TM-AS-Result: No--0.364-7.0-31-10
X-imss-scan-details: No--0.364-7.0-31-10
X-TMASE-Version: IMSVA-8.2.0.1391-8.0.1202-22662.005
X-TMASE-Result: 10--0.363600-5.000000
X-TMASE-MatchedRID: 40jyuBT4FtykMGOaBzW2QbxygpRxo469FspPdEyOR1qJNv6smPBGj5g3
9Rgsjteo4vM1YF6AJbZcLc3sLtjOty5V0GTrwsKpl6V6bOpOzUAdzA5USlz33EYWGTXfmDJJ3Qf
wsVk0UbuGrPnef/I+eo9h73qb6JgVCR2fClyPE+EPh2lMKov3fdtvzshqXylpWZGeMhmJ7ScqBW
z6M5VHW/fngY5M/1HkzhvqqZL61o+ZdBoyruxjzQ==
This is my real text! I need to extract this line!
cat $my_file | egrep -v "^(X-TM-AS)"
| egrep -v "X-imss-scan-details"
| egrep -v "^(X-TMASE-)"
但它不起作用。它没有完全消除X-TMASE-MatchedRID
的值:
9Rgsjteo4vM1YF6AJbZcLc3sLtjOty5V0GTrwsKpl6V6bOpOzUAdzA5USlz33EYWGTXfmDJJ3Qf
wsVk0UbuGrPnef/I+eo9h73qb6JgVCR2fClyPE+EPh2lMKov3fdtvzshqXylpWZGeMhmJ7ScqBW
z6M5VHW/fngY5M/1HkzhvqqZL61o+ZdBoyruxjzQ==
This is my real text! I need to extract this line!
我希望输出为:
This is my real text! I need to extract this line!
也就是说,我不希望在输出中看到任何元数据
您知道如何使用egrep或任何等效命令来实现这一点吗?如果您只想删除第一段,则使用其他命令更好,例如
sed
sed '1,/^$/ d' "$my_file"
可能会过滤掉所有以
X-
或空格开头的行grep-vE'^X-|^'
@Sundeep好吧,我担心文本本身可能以空格开头。mkj提供的解决方案实际上起了作用。所以,我将把这个标记为已接受。谢谢你的评论!:-)