解決しよう:私の良き友人は私のために次のプログラムを書いた:分割列
filename="my_input_file"
context="channel" # this is the key which separates the blocks in the input file
desired_column_separator="," # this will separate the columns in the output file
output_prefix="modified_" # prefix for the output file
if [ -d ./tmp ]
then
echo " "
echo "***WARNING***"
echo "I want to use and delete a ./tmp/ directory, but one already exists... please remove/rename it, or alter my code***"
echo " "
exit
fi
mkdir ./tmp
cd ./tmp
csplit -z -n 4 ../$filename /$context/ {*} 1> /dev/null
filenum=`ls -1 ./ | wc -l`
limit=`echo "$filenum - 1" | bc -l`
lines=`wc -l < xx0000`
touch tmp.dat
for j in `seq 1 $lines`
do
oldstring=''
for i in `seq 0 $limit`
do
inputNo=`printf "%04d" $i`
string=`head -n $j 'xx'$inputNo | tail -n 1`
oldstring=$oldstring$string$desired_column_separator
done
finalstring=`echo $oldstring | tr -d '\r' | tr -d '\n'`
echo "working on line "$j" out of "$lines
echo -n $finalstring >> tmp.dat
echo -e "\r" >> tmp.dat
done
mv tmp.dat ../$output_prefix$filename
cd ..
rm -r -f ./tmp/
echo "...done!"
オリジナル:私はこのフォーラムの死に行われてきた分割テキストファイルを知っているが、私はcouldn私の問題に固有の方法を見つけることができません。 大きなファイル(> 200MB)をテキスト行の列に分割したいが、 'split'関数はすべての列をそれ自身のファイルに入れる。 3,000個の個々のファイルのテキストは、正直言って他のプログラムに読み込む苦痛です。また、データのヘッダ(4行目の最後の部分)として使用するテキストファイルの一部を抽出したいと考えています。
channel names:
03/02/2012 12:03:03 - TDS3k(CH1)
start times:
03/02/2012 12:08:02.311422
dt:
0.000000
data:
-8.000000E-4
-8.000000E-4
-1.600000E-3
... (9,994 lines omitted)
-2.400000E-3
-1.600000E-3
-2.400000E-3
channel names:
03/02/2012 12:03:03 - TDS3k(CH1)
start times:
03/02/2012 12:33:11.169533
dt:
0.000000
data:
-8.000000E-4
-1.600000E-3
-1.600000E-3
... (another 9,997 lines omitted)
私はそうのように見えるしたいと思います:
channel names: channel names:
03/02/2012 12:03:03 - TDS3k(CH1) 03/02/2012 12:03:03 - TDS3k(CH1)
start times: start times:
03/02/2012 12:08:02.311422 03/02/2012 12:33:11.169533
dt: dt:
0.000000 0.000000
data: data:
-8.000000E-4 -8.000000E-4 ...
-8.000000E-4 -1.600000E-3 ...
-1.600000E-3 -1.600000E-3 ...
... ...
私が正しい場所にスプリットを得ることがより行うことが容易である疑いがある 初期ファイルはそうのように、単一の列で構成されていヘッダーが、私はどちらかを行うのに十分ではありません。事前に
おかげで
編集:私はまだ特定の言語を使用していませんよ。私はRでそれを分析することができる形式でデータを必要とします。私は、皆さんが働くことが示唆できるものは何でも一緒に行きます。
どのようなプログラミング言語を使用しますか? – ChrisWue
あなたが知っているのは、あなたが使っているツール(言語/スプレッドシート/データベース/その他)についてちょっとしたヒントを与えたいかもしれません。 –
私は特定の言語を使用していません。 「sed」と「awk」はどちらも友人によって示唆されていましたが、私はそれらを働かせることができませんでした。私はある時点でそれをRにロードします。 – user1191276