ディレクトリ内に1300個のtxtファイルが入っています。
全てのtxtファイルを列方向につなげて一つのtxtファイルにしたいです。
pasteを使えば複数のファイルを列方向に結合できますが、1300個を一括で結合できる方法はありますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
paste *.txt
でいいのでは?
ファイルの順番はファイル名を辞書順でソートした順になります。
1.txt
2.txt
10.txt
のようなネーミングなら、
paste ?.txt ??.txt ???.txt ????.txt
とか、
paste $(ls -v)
(数字順ソート)
とか。
「こういうファイル名体系で、こういう順で連結したい」というのが上記以外なら、補足して下さい。
#追記
同時ファイル数オープンの上限の回避で、1回1000を上限にpaste
する。
Bash
1rm -f *.wk 2ls -1 *.txt | xargs -n 1000 sh -c 'paste > $$.wk $*' sh 3paste *.wk > output 4rm *.wk
投稿2020/03/28 07:26
編集2020/03/28 11:16総合スコア85901
0
ベストアンサー
方法はありますか?
bashのforループを使えばできます。ちゃんとテストしていませんが、たぶん次のような感じで。
filelist=(`ls -v`) cp ${filelist[0]} out.txt for a in ${filelist[@]:1}; do paste out.txt $a > out0.txt mv out0.txt out.txt done
投稿2020/03/28 06:04
総合スコア13692
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/28 10:53
2020/03/28 11:53
2020/03/28 11:55 編集
2020/03/28 13:44
2020/03/28 14:20
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/28 10:44
2020/03/28 11:13
2020/03/28 11:16
2020/03/28 11:19
2020/03/28 11:45
2020/03/28 12:03
2020/03/28 12:09
2020/03/30 22:44