2016-08-12 14 views
-1

拡張子が.textの のディレクトリですべてのファイル名を取得し、同じディレクトリ内のファイルに行番号14. これは私がこれまで持っていたものですが、うまくいきません。grepの結果をsedで行ごとに書き込む

cp workDir | grep -r --include * .text | sed -i '14i' home.text

何か助けていただければ幸いです。注:私はUnix上です。

+1

あなたがしようとしていることを明確に説明できますか? – Devavrata

+0

workDirというディレクトリがあり、テキストファイルがあります。私はそれらのテキストファイルの名前を取って、workDirというディレクトリにあるhome.textというファイルの14行目に置きたいと思います。 – NickJ

+0

@NickJ 14行目はなぜですか? – hek2mgl

答えて

0

cp workDircpcp source destinationのようにコピーするため、機能しません。 cpについてのさらなる説明は、man cpで読むことができる。

目標を達成するには、cd ~/path/to/workDirでディレクトリに移動します。そこにlsコマンドを使用して、すべての.textファイル拡張子について、>>を使用して、既存のファイルに追加する出力をリダイレクトすることができます。このような例

ls *.text >> home.text 

これはラインによってのみ、ファイル名の行を追加しますhome.textあなたへの答えでbevor findコマンドと同じように./の前になし。

教えてください追加したいファイル名の別の形式が好きな人は、教えてください。

+0

説明をいただきありがとうございます。あなたのコマンドは、探していたものとまったく同じでした。 – NickJ

+0

あなたは大歓迎です。もしこれが答えに残っている矢印のある有用なものだったら、私の答えをupvoteするように自由に落ちてください。あなたのような同じ問題を抱えているこの他のユーザーは、この迅速な解決策をより直接的に指摘するでしょう。 –

1

あなたはシェルコマンドを、以下のことにより、上記の作業を行うことができます。

find workDir -name "*.text" >> home.text 

これは、あなたがコメントしているものを解決します。

関連する問題