gpt4 book ai didi

linux - sed 删除不同行上两个字符串之间的字符

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:26 25 4
gpt4 key购买 nike

<分区>

我想删除文件中字符串 /**/ 之间的所有文本,其中字符串可能出现在不同的行上并围绕注释。例如,我想删除 /**/ 之间的以下七行:

/* "CyIHTAlgorithm.pyx":81
* @cython.wraparound(False)
* @cython.cdivision(True)
* cdef inline object IHTReconstruction2D(fType_t[:,:] data, # <<<<<<<<<<<<<<
* fType_t[:,:] residualFID,
* fType_t[:,:] CS_spectrum,
*/

我已经设法使用 sed 做到这一点,其中字符串出现在同一行:sed -i.bak 's/\(\/\*\).*\(\*\/\)/\1\2/' 测试.txt但我不确定如何将其扩展到同一文件中的多行:

我也试过:sed -i.bak '/\/\*/{:a;N;/\*\//!ba;s/.*\/\*\|\*\/.*//g} ' test.txt 按照这里的想法 ( Extract text between two strings on different lines )

这会删除开头的 /**/ 但不会删除中间的文本。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com