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

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

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

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

Linux

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

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

2回答

16509閲覧

UNIXでファイル整理

dlrowolleh

総合スコア120

bash

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

Linux

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

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

1クリップ

投稿2016/09/29 06:55

いつもお世話になっております。
よろしくお願いいたします。
現在、ubuntuのbash環境でファイルの整理をしています。
そこで、少し困った点があるため皆様のお知恵を拝借できませんでしょうか。
###前提・実現したいこと

~/hogeディレクトリの中にある
hoge.txt
foo.txt
unknown.txt
yamamoto.txt
yosinaga.txt
a.txt
b.txt
c.txt
(略)
すべてのファイルにhelloと文字を入れたいです。
すべて空のファイルです。

###試したこと

bash

1~/hoge$ echo hello >> *txt 2

###発生している問題・エラーメッセージ

bash: *txt: 曖昧なリダイレクトです

このようにエラーメッセージが表示されました。
原因がよく分かりません。どうすればよいでしょうか?
どなたかお力をお貸しいただけないでしょうか。
よろしくお願いいたします。

###補足情報(言語/FW/ツール等のバージョンなど)
ubuntu15.10 bahsを使用しております。

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

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

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

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

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

guest

回答2

0

ベストアンサー

リダイレクトできる先は1ファイルだけです。リダイレクトするならファイルの個数だけループが必要。

Bash

1for a in *txt 2do echo hello > $a 3done

あるいは、tee コマンドを使って

Bash

1echo hello | tee *txt

ファイルが空と言うことで、追加書きではなく上書きにしています。

投稿2016/09/29 07:06

otn

総合スコア84505

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

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

dlrowolleh

2016/09/29 08:18

できました! ご回答いただきましてありがとうございます! >リダイレクトできる先は1ファイルだけです。リダイレクトするならファイルの個数だけループが必要。 勉強不足でした。 >tee コマンドを使って tee コマンド知りませんでした。 出力結果も見ることができて便利ですね。 勉強になりました! ありがとうございました! これで作業が捗ります!
guest

0

リダイレクトはワイルドカードが指定できなかったはず。
以下でいけると思います。

for f in `ls` do echo "hello" >> $f done

単発でやりたいならシェルスクリプトにするまでもないですね。

投稿2016/09/29 07:04

ynakano

総合スコア1894

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

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

dlrowolleh

2016/09/29 08:07

ご回答ありがとうございます。 >リダイレクトはワイルドカードが指定できなかったはず。 ワイルドカード使えると思っていました。 スクリプトを組まないといけないと思って少し身構えてはいましたが、 このようにやればできるのですね! シンプルですごく便利ですね! とても勉強になりました! これで作業が捗ります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問