Bash 类似于一个老问题;将标题添加到列表文本文件“中的列”;
我正在尝试向txt文件添加一些标题。事实上,我已经找到了一个脚本,但我想编辑它的一部分。 脚本(如果您喜欢,也可以在此处找到:): 问题是我想“粘贴-s”,但不是从第一列开始,而是从第二列开始。 我原以为done | awk$2 | paste-s | header.txt会有帮助,但事实并非如此 你知道如何直接从第二栏开始添加标题吗 使用上面的脚本,我得到了这个输出Bash 类似于一个老问题;将标题添加到列表文本文件“中的列”;,bash,awk,Bash,Awk,我正在尝试向txt文件添加一些标题。事实上,我已经找到了一个脚本,但我想编辑它的一部分。 脚本(如果您喜欢,也可以在此处找到:): 问题是我想“粘贴-s”,但不是从第一列开始,而是从第二列开始。 我原以为done | awk$2 | paste-s | header.txt会有帮助,但事实并非如此 你知道如何直接从第二栏开始添加标题吗 使用上面的脚本,我得到了这个输出 L004_AQAU-19 L004_AQAU-20 L004_AQAU-21 etc. ALOMY0G001 0 0 ALO
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表示每行是否必须执行多次)。这些“模式”是正则表达式(regex)。对于regex^
是行的开头。因此,在这里,我替换^
(行首)带有\t
(一个制表符)。(粘贴
默认使用制表符,使用粘贴-d,-s
例如使用逗号。)请发布一些具有相关预期输出的示例数据。不要将其作为图像或注释发布,而是将其编辑为原始问题。谢谢。非常感谢@Hielke的回答,但这样我就丢失了第一个标题L004_AQAU-19,因此基本上标题粘贴从第二个标题开始。我想要的是第一个标题开始从第二栏开始,@Bia您可能希望下次发布示例数据,就像詹姆斯·布朗在评论中提到的那样。我编辑了我的问题。我花了一些时间来正确地完成,因为我是新来的。我尝试了您的第二个代码,正在工作!非常感谢!!:)你能解释一下这里的符号是什么意思吗??
... paste -s | sed 's/^/\t/' > header.txt