独り言ch

このブログでは、個人的な体験談や意見などを好き勝手書くサイト。

【備忘録】リダイレクトとコマンドプロンプトについて

リダイレクト:Windows/linux

#普通にechoで文字内容をテキストファイルに上書き

echo "test"> file.txt(echo "test"1> file.txt デフォルトで1に設定されている)

#テキストファイルに追加で文字列を挿入

echo "test">> file.txt

#標準エラーの内容をテキストファイルにリダイレクト

dir *.exe 2> ErorrFile.txt

#標準エラーの内容をテキストファイルに追記でリダイレクト

dir *.exe 2>> ErorrFile.txt

#標準出力と標準エラーを両方ともリダイレクト

コマンド > ファイル名 2>&1

#標準出力と標準エラーを両方とも追記でリダイレクト

コマンド >> ファイル名 2>&1

パイプについて

#コマンドの(|)の後ろにさらにコマンドを記入して標準出力の内容を変えることができる。
コマンド1 | コマンド2 | コマンド3 | コマンド4
 ※パイプは実行処理結果をパイプの横にあるコマンドでさらに実行処理を行う

[windows]

type filename.txt | more

[Liniux]

cat filename.txt | grep -i "aaaaa"

 

#結合について

[windows]
copy file1.txt + file2.txt + file3.txt file123.txt
[Linux]
cat file1.txt file2.txt file3.txt > file123.txt
 
#入力について
コマンド < ファイル名
※重要:「0」は標準入力であるSTDINハンドルを表しており、省略した場合は「0」
リダイレクトを使って入力ファイルをコマンドプロンプトに出力
例) 「C:\share>sort 0< test.txt」 
  「C:\share>sort < test.txt」
 
コマンド < 入力ファイル名 > 出力ファイル名
リダイレクトを使って、入力ファイル名をコマンドプロンプトでデータ加工出力
例)sort < data.txt > result.txt
data.txtをコマンドプロンプトで並び替えを行い、result.txtに出力。
cat signature.txt >> mail.txt
ls -l /etc > ls-etc.txt

豆知識:

標準出力と標準エラー出力にわけられる
※一見すると全部、標準エラーにみれるので注意
 
・typeコマンド
書き方:type [ファイル名]
結果:ファイルに記載されている内容を確認できる。
 
・ビットバケツ
/dev/null は、Unix系のオペレーティングシステムにおいて特別なファイルの一つで出力に不要な標準データと標準エラーデータを表示しないように設定できる。
    command > /dev/null
    ・コマンドの標準出力を消すことができる
    command 2> /dev/null
    ・標準エラーデータを表示しないように設定できる
    command > /dev/null 2>&1
    ・コマンドの標準出力とエラー出力両方とも消すことができる
 
[help コマンド] 
[コマンド /?]
でコマンドオプションを確認することができる。