Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 类似于一个老问题;将标题添加到列表文本文件“中的列”;_Bash_Awk - Fatal编程技术网

Bash 类似于一个老问题;将标题添加到列表文本文件“中的列”;

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

我正在尝试向txt文件添加一些标题。事实上,我已经找到了一个脚本,但我想编辑它的一部分。 脚本(如果您喜欢,也可以在此处找到:):

问题是我想“粘贴-s”,但不是从第一列开始,而是从第二列开始。 我原以为done | awk$2 | paste-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表示每行是否必须执行多次)。这些“模式”是正则表达式(regex)。对于regex
^
是行的开头。因此,在这里,我替换
^
(行首)带有
\t
(一个制表符)。(
粘贴
默认使用制表符,使用
粘贴-d,-s
例如使用逗号。)

请发布一些具有相关预期输出的示例数据。不要将其作为图像或注释发布,而是将其编辑为原始问题。谢谢。非常感谢@Hielke的回答,但这样我就丢失了第一个标题L004_AQAU-19,因此基本上标题粘贴从第二个标题开始。我想要的是第一个标题开始从第二栏开始,@Bia您可能希望下次发布示例数据,就像詹姆斯·布朗在评论中提到的那样。我编辑了我的问题。我花了一些时间来正确地完成,因为我是新来的。我尝试了您的第二个代码,正在工作!非常感谢!!:)你能解释一下这里的符号是什么意思吗??
... paste -s | sed 's/^/\t/' > header.txt