我正在尝试编辑压缩的fastq.gz文本文件,删除第2,6,10,14行的前六个字符...我现在有两种不同的方法,使用awk或sed,但这些只是如果文件解压缩似乎工作.我想编辑文件而不解压缩它们并尝试以下代码而不让它工作.谢谢.
使用sed:
zcat /dir/* | sed -i~ '2~4s/^.\{6\}//'
Run Code Online (Sandbox Code Playgroud)
使用awk:
zcat /dir/* | awk 'NR%4==2 {gsub(/^....../,"")} 1'
Run Code Online (Sandbox Code Playgroud)
Mar*_*eed 21
您无法绕过压缩,但您可以以自动方式将解压缩/编辑/重新压缩链接在一起:
for f in /dir/*; do
cp "$f" "$f~" &&
gzip -cd "$f~" | sed '2~4s/^.\{6\}//' | gzip > "$f"
done
Run Code Online (Sandbox Code Playgroud)
如果您对操作非常有信心,可以通过添加rm "$f~"到循环体的末尾来删除备份文件.