【发布时间】:2017-04-07 14:32:42
【问题描述】:
我有一个名为 Subj1、Subj2 .. Subj50 的 50 个目录,每个目录包含 152 个文本文件,每个文件以下列命名格式命名
regional_vol_GM_atlas1.txt
..
..
regional_vol_GM_atlas152.txt
每个文件有4行2列的数据,其中列值用空格分隔符分隔
667869 667869
580083 580083
316133 316133
9020 9020
我想将每个带有标题的 txt 文件的第四行导出到我拥有的所有 50 个目录的 csv 文件中
我编写了一个脚本,它从每个文本文件中导出数据以及标题并创建一个 CSV,但该脚本会接收文本文件中的所有数据并粘贴到 CSV 而不是第 4 行。
#!/bin/bash
# pasting the file name as column name,
for x in regional_vol_*.txt ; do
sed -i "1s/^/${x}\n/" ${x}
done
# Sorting the files and Subj1 directory name is file name of csv file
paste -d, $(ls -1v regional_vol*.txt ) >> subj1.csv
下图描述了文件的输出。Subj1是目录名
【问题讨论】:
-
所以你想为 50 个目录创建 50 个 csv
Sub1, Sub2 .. Sub50..对吗?并且目录的每个csv只有每个文件的标题+第4行..对吗? -
@ritesht93,不,我想要所有 50 个目录的 1 个 csv 文件,其中只有第四行 txt 文件以及标题
标签: bash csv export-to-csv