我有多个txt格式的数据集,其中有一个可预测的内容。我正在尝试删除第一组行。第一行从>*chromosome开始,我想删除>*plasmid之前的所有内容。我可以告诉它删除>中的所有内容,直到它再次遇到它,或者删除第一个>和第二个>之间的所有内容。我一直在尝试这样的东西:
sed -i.bak '/>/,/^\>*$/{d}' file.txt
这不起作用,我找到的原始代码是:
sed -i.bak '/>/,/^\s*$/{d}' file.txt
我试图在Python中将这段代码复制到Bash
import re
w = open("filetest.txt")
for item in re.findall(r'STRING:\s*(.+)"', w.read()):
print item
在巴什,但我不知道它是否正确,这是什么都没有回报。
while read line; do
if [[ $line =~ r'STRING:\s*(.+)"' ]]; then
echo $line
fi
done < filetest.txt
我找不到在sed和匹配模式中使用标志的方法。
我在试着用我的旗子。但我不明白它是怎么工作的。
$ sed -i '' -n '/xxx.xxx@xxx.fr/i d' res.txt
sed: 1: "/xxx.xxx@xxx.fr/i d": command i expects \ followed by text
所以我想要匹配xxx.xxx@xxx.fr和XXX.XXX@XXX.FR
-i ''只用于--in-file (without cache),d用于删除。
那么,我如何使用标志,并最终使用其中的多个呢?在文档中,我发
我在教自己Perl,通过例子我学得最好。因此,我正在学习一个简单的Perl脚本,它可以抓取一个特定的博客,并且发现自己对一些regex语句感到困惑。脚本查找以下几块html:
<dt><a name="2004-10-25"><strong>October 25th</strong></a></dt>
<dd>
<p>
[Content]
</p>
</dd>
... and so on.
下面是我正在学习的示例脚本:
#!/us
在awk中,如果我给awk提供了多个文件作为参数,那么有两个特殊的变量:
NR=所有文件中所有行对应的行号。
FNR=当前文件的行号。
我知道在Perl语言中,$.对应于NR (所有文件中的当前行)。
在Perl中有没有什么东西可以和AWK的FNR相媲美呢?
假设我有一些命令行:
perl -pe 'print filename,<something special which hold the current file's line number>' *.txt
这应该会给出类似如下的输出:
file1.txt 1
file1.txt 2
file2.t
我有一个文件example.txt,它包含以下文本:
[one]: bla bla bla onebla twobla
[two]: hey heya noheya
[onemore]: i got mad and etc
我需要grep并且只显示在[myword]之后的文本:尝试以这样的方式测试它:
grep [myword] /tmp/example.txt | cut -d ':' -f 2
在每个[myword]上,它都会打印括号后面的所有内容,但是如何才能只得到我所需要的,而不是全部呢?
我只需要打印某些括号后的测试。例如,我希望只打印[one]:行中的文本,而不是[