首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xargs和wc -c

Xargs和wc -c
EN

Stack Overflow用户
提问于 2015-12-08 19:05:31
回答 2查看 1.2K关注 0票数 0

我有这样的东西:

代码语言:javascript
复制
  grep -v ">" $subfolder/assembly/contigs_1L.fasta | xargs -d \n wc   >> $subfolder/N50_analysis/NC_len.txt

有了这个,我想从fasta文件中删除标识符,然后我想计算每一行的字符。

xargs做了它应该做的事情,在\n之后拆分,但它不算数。如果我不使用\n,那么所有的东西都只有一大行。

编辑:

输入

代码语言:javascript
复制
>C1
AGATGATGAGGATGAGATTGACTACGATCGATCGATGCATCGATCGGCATCGATCGACTGATCGATCGATCGATCGATCGATCGTACGATCGGCTACGCGCGATCGACGCGCGCGATCGATCGATCGTCGATCGGCGCGCTACGATCG

>C2
AGATGATGAGGATGAGATTGACTACGATCGATCGATGCATCGATCGGCATCGATCGACTGATCGATCGATCGATCGATCGATCGTACGATCGGCTACGCGCGATCGACGCGCGCGATCGATCGATCGTCGATCGGCGCGCTACGATCG

我只需要AGCT序列的长度,所以我取(grep)文件中不是以>开头的所有内容。然后我想要独立计算每个序列的长度,所以最后我得到了类似这样的结果:

代码语言:javascript
复制
 150
 100
  .
  .
  .
  Cn
EN

回答 2

Stack Overflow用户

发布于 2015-12-08 19:50:41

代码语言:javascript
复制
grep -v ">" testfile | awk '{ print length }' >> charcount.txt

可能就是你要找的东西。

票数 0
EN

Stack Overflow用户

发布于 2022-02-27 13:11:34

以您的输入文件为例:

代码语言:javascript
复制
cat >input.txt <<EOS
>C1
AGATGATGAGGATGAGATTGACTACGATCGATCGATGCATCGATCGGCATCGATCGACTGATCGATCGATCGATCGATCGATCGTACGATCGGCTACGCGCGATCGACGCGCGCGATCGATCGATCGTCGATCGGCGCGCTACGATCG

>C2
AGATGATGAGGATGAGATTGACTACGATCGATCGATGCATCGATCGGCATCGATCGACTGATCGATCGATCGATCGATCGATCGTACGATCGGCTACGCGCGATCGACGCGCGCGATCGATCGATCGTCGATCGGCGCGCTACGATCG
EOS

GNU

代码语言:javascript
复制
grep -v '>' input.txt |
  tr -s '\n' |
  xargs -d '\n' -n1 sh -c 'printf %s "$@" | wc -c' sh
代码语言:javascript
复制
148
148

BSD

代码语言:javascript
复制
grep -v '>' input.txt |
  tr '\n' '\0' | tr -s '\0' |
  xargs -0 -n1 sh -c 'printf %s "$@" | wc -c' sh
代码语言:javascript
复制
     148
     148

解释

  1. tr -s是必需的,因为在输入文件中有空行,这会导致arguments.
  2. There生成空字符串,因为对于BSD xargs-d没有xargs标志,一个惯用的解决方案是使用printf而不是echo将它与tr.
  3. We组合,因为后者打印额外的尾随新行character.
  4. We使用sh -c而不是printf %s "$@"为了防止转义characters.
  5. When使用sh -c$0需要一个额外的参数。这里我们使用sh,但您也可以使用任何其他合理的名称。-c字符串如果存在-c选项,则从字符串中读取命令。如果字符串后面有参数,则会将它们分配给位置参数,从$0开始。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34154246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档