-4

それぞれに次の構造を持つ多くのファイルがあります。

ファイルワン:

1 x
2 r
3 f
4 t
: :
: :
1000 k

2 番目のファイル:

1 x
2 r
3 f
4 t
: :
: :
1000 k

このようなファイルが何百もあります。 各ファイルの 2 番目の列をタブで区切った最終出力ファイルが必要です

出力ファイル:

x ..More Columns ... q
r ..... w
f ..... e
t ..... l
:       :
:       :

Python または Bash Script を使用することをお勧めします。このばかげた質問で申し訳ありません。

これまでの進捗状況は、各ファイルの 2 列目に * で区切られた文字列のリストを作成したことです。しかし、 コードを書く方法のアイデアを生成しません:

import tkinter.filedialog
def FileToString (fin):
    Result = ''
    for line in fin:
        LineList = line.strip().split(' ')
        Result = Result + '*' + LineList[1]
return (Result)


File = tkinter.filedialog.askopenfilenames(title='Select the Files you want>> >>> >> >>>>')
Filenames = File.split()
Result = []
ArrayResult = []
OutPutFileName = tkinter.filedialog.asksaveasfilename(title='Select or Enter Output File >>     >>>> >>>>')
fout = open(OutPutFileName,'w')
for name in Filenames:
    fin = open(name,'r')
    FileResult = FileToString(fin)
    ArrayResult.append(FileResult)

ありがとう

4

2 に答える 2

3

コマンドラインで...

paste file1 file2 > file3

ここに私の情報源があります:あまり知られていない Linux コマンド: 結合、貼り付け、並べ替え

これがあなたが探しているものでない場合は、返信してください。私はそれに取り組みます。


これを試してみてください...「file*」と「out.txt」を必要なものに変更してください。

#!/bin/sh
outFile=out.txt
tmpFile=$$.tmp
for FILE in `ls file*`
do
    if [ ! -f ${tmpFile} ]; then
        # Need to seed the tmp file one first pass
        cp ${FILE} ${tmpFile}
        continue
    fi
    paste ${tmpFile} ${FILE} > ${outFile}
    mv ${outFile} ${tmpFile}
done
# Move the tmp file to output file
mv ${tmpFile} ${outFile}
于 2013-04-06T05:16:38.273 に答える