tr on mac:错位的序列星号
tr on mac: misplaced sequence asterisk
我对所有这些都很陌生,所以请原谅任何错误。
我正在研究 mac.
我正在尝试按照本教程进行操作 here
当我输入 tr "[ -%,;\(\):=\.\\*[]\"\']" "_" < hug_tol.fasta > hug_tol.clean.fasta
我收到错误消息 tr:misplaced sequence asterisk
我猜文件中一定有错误,但由于我试图删除这些字符,所以错误消息没有意义。
我在 Google 上没有找到任何东西,所以也许有人可以帮助我。
本教程的作者似乎对 tr
使用准正则表达式字符 class 语法。 tr
的范围远不止于此。它只接受一些转义字符和特殊字符。将您的命令简化为
tr "%,;():=.*[]\"\' \\\-" "_" < hug_tol.fasta > hug_tol.clean.fasta
-
字符确实有特殊含义,所以放在末尾:在开始时它会被解释为命令行参数,而在中间它指定一个字符范围。在 bash 中,*
不会用双引号展开。对于 tr
,要指定普通的 \
,您需要双 \
(因为它是转义字符)。要通过 bash,您需要 \\
。
您可能还想考虑使用 -c
选项来指定补集(您要保留的字符),因为它可能要小得多:
tr -c "A-Za-z0-9_" "_" < hug_tol.fasta > hug_tol.clean.fasta
或更简洁
tr -c "[:alnum:]" "_" < hug_tol.fasta > hug_tol.clean.fasta
我对所有这些都很陌生,所以请原谅任何错误。
我正在研究 mac.
我正在尝试按照本教程进行操作 here
当我输入 tr "[ -%,;\(\):=\.\\*[]\"\']" "_" < hug_tol.fasta > hug_tol.clean.fasta
我收到错误消息 tr:misplaced sequence asterisk
我猜文件中一定有错误,但由于我试图删除这些字符,所以错误消息没有意义。
我在 Google 上没有找到任何东西,所以也许有人可以帮助我。
本教程的作者似乎对 tr
使用准正则表达式字符 class 语法。 tr
的范围远不止于此。它只接受一些转义字符和特殊字符。将您的命令简化为
tr "%,;():=.*[]\"\' \\\-" "_" < hug_tol.fasta > hug_tol.clean.fasta
-
字符确实有特殊含义,所以放在末尾:在开始时它会被解释为命令行参数,而在中间它指定一个字符范围。在 bash 中,*
不会用双引号展开。对于 tr
,要指定普通的 \
,您需要双 \
(因为它是转义字符)。要通过 bash,您需要 \\
。
您可能还想考虑使用 -c
选项来指定补集(您要保留的字符),因为它可能要小得多:
tr -c "A-Za-z0-9_" "_" < hug_tol.fasta > hug_tol.clean.fasta
或更简洁
tr -c "[:alnum:]" "_" < hug_tol.fasta > hug_tol.clean.fasta