从字符串行中修剪变量文本

从字符串行中修剪变量文本

我正在尝试修剪大型文本文档中的字符串。它们都以 开头>chr5:,然后是可变的数字字符串。

例如:>chr5:1264398-1264827。我想将这些全部缩减为>chr5。数字序列的长度可能不同,因此我不确定是否可以只缩减 X 个字符并使其适用于文档中每个适用的行。

我努力了

sed -i 's/>chr5*/>chr5/g' file.txt 

尝试对以 开头的每一行进行通配符处理>chr5,但这没有奏效。它似乎什么也没做。我在网上搜索过,但找不到任何与删除可变字符串区域有关的内容。

如果这很重要的话,我正在使用 Mac 终端。如果有什么需要我详细说明的,请告诉我,提前感谢您的帮助。

答案1

你已经接近了,但是*sed 中的星号(或者更准确地说是 regexp 正则表达式)表示零个或多个前导字符。句号/句点.表示任何字符,因此如果你运行:

sed -i 's/>chr5.*/>chr5/g' file.txt

它的意思是匹配零个或多个任意字符,并且可能会执行您所期望的操作。

相关内容