質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

1回答

818閲覧

【Ubuntu】複数の同じ形式のテキストファイルをファイル名とともにまとめたい

korisuya

総合スコア1

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

1グッド

2クリップ

投稿2020/09/11 07:19

編集2020/09/11 07:20
数値a,数値b,数値c 1.6546,0.5989,50000

といった内容のテキストファイルが多数存在しています。
エクセルにまとめたいので、これらのファイルをファイル名と中の数値をまとめて一つにしたいです。
具体的には以下のような形にしたいです。

名前,数値a,数値b,数値c A.txt,1.6546,0.5989,50000 B.txt,2.65682,0.8565,1000 C.txt,0.569589,0.7995,20000 ・ ・ ・

for文やbasenameといったコマンドを使えばよいのかなと思ったのですが
自力では実現できませんでした。

詳しい方がいらっしゃいましたら、ご教授いただければと思います。
よろしくお願いいたします。

edi3👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidezzz

2020/09/11 14:16

一応回答しましたが、こちらで設定した前提条件に収まらない仕様等がありましたら追記してください。
korisuya

2020/09/13 02:11

ほとんど丸投げの質問でしたが、お答え頂きありがとうございました。 自分でもgrepとsedを何回か使って実現は出来たのですが、こちらのほうがスマートだったので本当に感謝しています。
guest

回答1

0

ベストアンサー

作ってみました。以下のような前提条件があります。
・対象ファイルはカレントディレクトリにすべて*.txtというファイル名で置いてある。
・中身のエラーチェックはしていない。
・2行目に必ずCSV行がある前提で、2行目をそのまま取り出している。
・1行目は*.txtから拾って貼り付けることも一応出来ると思われるが、今回は固定文字列をprintしている。

terminal

1$ head -n-0 *.txt 2==> a.txt <== 3数値a,数値b,数値c 41.6546,0.5989,50000 5 6==> b.txt <== 7数値a,数値b,数値c 82.65682,0.8565,1000 9 10==> c.txt <== 11数値a,数値b,数値c 120.569589,0.7995,20000 13 14$ awk 'BEGIN{OFS=",";print "名前","数値a","数値b","数値c"}{if(FNR==2){print FILENAME,$0}}' *.txt 15名前,数値a,数値b,数値c 16a.txt,1.6546,0.5989,50000 17b.txt,2.65682,0.8565,1000 18c.txt,0.569589,0.7995,20000

投稿2020/09/11 13:40

編集2020/09/11 14:05
hidezzz

総合スコア1248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hana_yama_san

2020/09/11 14:02 編集

必ずcsvがある前提なら,その他の,"***,***",何か,の対処も考えた方が良いと思います。 あと、各ファイルが一行で完結していると言う根拠は無いのでは?
hidezzz

2020/09/11 14:14

質問文にかかれている範囲内で、こちらで勝手に前提条件を設定して回答を作成しています。 質問文に書かれていない考慮事項があるかもしれないというのはご指摘の通りなので、「質問の追記・修正依頼」にコメント入れておきたいと思います。
hana_yama_san

2020/09/11 14:22

お手数ですが、お願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問