bash - 类似于较早的问题“将标题添加到列表文本文件中的列”
问题描述
我正在尝试将一些标题添加到 txt 文件中。实际上我已经找到了一个脚本,但我想编辑它的一部分。脚本(如果你喜欢,你也可以在这里找到它:https ://ucdavis-bioinformatics-training.github.io/2017-June-RNA-Seq-Workshop/thursday/counts.html ):
for x in 03-alignment/*/*ReadsPerGene.out.tab; do \
s=`basename $x | cut -f1 -d_`
echo $s
done | paste -s > header.txt
问题是我想“粘贴-s”,但不是从第一列开始,而是从第二列开始。我以为完成了| 2 美元 | 粘贴-s | header.txt 可以提供帮助,但没有帮助。
任何想法如何直接从第二列开始添加标题,好吗?
所以使用上面的脚本我得到这个输出。
L004_AQAU-19 L004_AQAU-20 L004_AQAU-21 etc.
ALOMY0G001 0 0
ALOMY0G002 0 10
ALOMY0G003 20 15
ALOMY0G004 4 5 etc.
但我想采取
L004_AQAU-19 L004_AQAU-20 etc.
ALOMY0G001 0 0
ALOMY0G002 0 10
ALOMY0G003 20 15
ALOMY0G004 4 5
etc.
解决方案
您可以使用cut
从制表符分隔的单词行中获取范围。
... paste -s | cut -f2- > header.txt
如果要跳过第一列,(第一列没有标题,只需在开头引入一个空选项卡。
... paste -s | sed 's/^/\t/' > header.txt
在这里我sed
用来替换一些东西。您可以s/A/B/g
将 A 替换为 B。(g 表示每行是否必须多次执行此操作。)这些“模式”是正则表达式(正则表达式)。因为正则表达式^
是行的开头。所以在这里,我将^
(行首)替换为\t
(一个制表符)。(paste
默认使用制表符,paste -d, -s
例如使用逗号。)
推荐阅读
- magento2 - Magento 2:如何解决 SalesSequence 中的唯一约束违规
- kernel - 从 mayavi 或 vtk 导入 mlab:内核死机
- sql - ISNULL 在 THEN 部分的 CASE 语句中不起作用
- mysql - MySQL - 添加多个派生表时查询慢 - 优化
- sql - 获取最后知道信息的帐户列表
- git - git 分支包含多个问题
- docker - Docker swarm 有一些共享卷
- python - 数据框和子图中的错误日期
- microsoft-edge - Window.open(url) 在 Edge 浏览器 v42.XXX 中打开两次
- sql - T-SQL 通过入站变量提取特定月份的数据