我试图将多个.txt文件串成一个.txt文件。每个单独的文件都有一个列,有178行,并与一个特定的人绑在一起。我希望串联文件具有三个列:人的ID#;人的会话#;从单个.txt文件中获取的值,例如:
-
所需的输出格式(减去子弹点(:
1 1 000 1 1 001 .... 1 1 177 1 2 000 1 2 001 ... 1 2 177
-
我的当前脚本用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