bash - 在新的 txt 文件中多行打印 ID 号
bash - print id number on multiple lines in new txt file
我正在尝试将多个 .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 }')
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("%s\t%s\t%s\n", subject, session, )}' "sub$subject.txt"
done
done >> concat_data.txt
我正在尝试将多个 .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 }')
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("%s\t%s\t%s\n", subject, session, )}' "sub$subject.txt"
done
done >> concat_data.txt