在新TXT文件中的多行上打印ID号



我试图将多个.txt文件串成一个.txt文件。每个单独的文件都有一个列,有178行,并与一个特定的人绑在一起。我希望串联文件具有三个列:人的ID#;人的会话#;从单个.txt文件中获取的值,例如:

  1. 所需的输出格式(减去子弹点(:

     1 1 000
     1 1 001
     ....
     1 1 177
     1 2 000
     1 2 001
     ...
     1 2 177
    
  2. 我的当前脚本用ID#和会话#在每个人的178行的第一行中打印出输出#,其余177个值打印在ID#下方的第1列中,例如:

     1 1 000
     001
     002
     ...
     177
     1 2 000
     001
     002
     ...
     177
     2 1 000
     001
     ...
    

我希望帮助从每个人的个人.txt文件中获取的178行旁边的ID#和会话#旁边,而不仅仅是在第一行中,因为它当前打印。

代码下面:

for subject in 170; do
    for session in 1 2; do
        cd ${datadir}
            ts_SalienceNetwork=$(cat sub${subject}.txt | awk '{print $1}')
            echo -e "${subject}t${session}t${ts_SalienceNetwork}" >> concat_data.txt
    done
done  

$t_SalienceNetwork包含整个文件,而您只是将其他变量放在前面,而不是在每行之前。

使用awk打印每行的第一列,每行上都有变量,不需要变量。

cd "$datadir" # no need to do this each time through the loop
for subject in 170; do
    for session in 1 2; do
        awk -v subject="$subject" -v session="$session" '{printf("%st%st%sn", subject, session, $1)}' "sub$subject.txt"
    done
done >> concat_data.txt

最新更新