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