linux②
正規表現とパイプ
標準入出力
標準入力に対して標準出力と標準エラー出力の2つ
一般的には、入力はキーボード、出力はデスクトップに反映される
出力のリダイレクト
次のコマンドはlsをリダイレクトしてファイルに書き込む
ls > ls-output(cat > ls-outputも同じ操作できる)
ここではls-outputというファイルが作成される
cat でls-outputの中身を確認するとlsの実行結果が出力される
標準エラー出力
出力に異常があるときエラーメッセージが出てくる
1:標準出力
2:標準エラー出力
パイプ
|←これをパイプという
コマンドとコマンドをパイプでつなげることでパイプの前のコマンドを後ろのコマンドの標準入力とすることができる
基本的なコマンド2
タイムスタンプ・・・ファイルの最終更新日
ファイルには必ずタイムスタンプが存在しており、それはlsコマンドの-lオプションで確認することができる。
以下のコマンドでタイムスタンプを変更することができる
touch [オプション] ファイル名
上記で実行するとタイムスタンプが最新に更新される
ファイルが存在しない場合は、0バイトの中身がないファイルが作られる
-tで時間指定で変更することができる -t 00000000
月 日 時 分
ファイルの一部取得
ファイルの一部分のみ見たい場合は以下のコマンドで見ることができる
head [オプション] ファイル名
オプション
-n 行 ・・・先頭から指定した行を標準出力します 行に指定したい行数を入れる 10行見たいなら -n10
-c バイト・・・先頭から指定したバイト数を標準出力します 10バイト見たいなら -c10
オプションをつけない場合は先頭から10行だけ出力する
tail [オプション] ファイル名
上記では最後から見たい部分を見ることができる
オプションの種類はheadと一緒 + -fというのがある
tail -f ファイル名 ではもしファイル名の終わり部分に変更が生じたときにリアルタイムでモニタすることができる
リアルタイムでログファイルなどの変更を見ることができる
ctrl+Cで処理を中断することができる
テキストファイルのソート
テキストファイルのソートをしたいときは以下のコマンドで実行できる
sort [オプション] ファイル名
以下オプション
-r・・・逆順でソート
-k x・・・x列目のデータをソートする
-n・・・数値としてソートする
オプションをつけないことで各行の最初の文字をアルファベット順にソートする
-nの数値としてソートするというのは基本的には-k x と組み合わせて使う
データのx列目のデータを数値として捉えてソートしたいときは -n -k x と入力する
行の重複の消去
以下のコマンド入力で直前の行と同じ内容があった場合、出力しない
連続している同じ行を1行にまとめることができる
uniq ファイル名
文字の書き換え
以下のコマンドで標準入力からのデータを文字ごとに置き換えることができる
tr 文字列1 文字列2
ファイルに変更の有無があるかどうかを調べるには以下のコマンドで実行できる
diff [オプション] ファイル1 ファイル2
以下オプション
-c・・・context diff形式で差分を出力
-u・・・unified diff形式で差分を出力
viエディタ
viとはぺージャでありエディタ
viでファイルを開いた場合はコマンドモードとインサートモードがある
viコマンドでファイルを開くには以下のコマンド入力
vi ファイル名
開いたファイルを閉じるときはESC押して、:qを入力
開いたファイルを保存するときはESC押して、:wを入力
開いたファイルを保存して終了したい場合はESC押して、:wqを入力
開いたファイルを保存せずに強制終了したい場合はESC押して、:q!を入力
行の最初に入力したいときはIコマンド 最後ならAコマンド
カーソルの動き
ESC状態でhコマンドで左、lコマンドで右、jコマンドで下、kコマンドで上、
0(ゼロ)コマンドでカレント行の行頭へ移動
$コマンドでカレント行の行末へ移動
ctrl+Fでページを前に
ctrl+Bでページを後ろに
:x xに任意の数字を入れるとみたい行数のところにカーソルがいく
様々な編集操作
x・・・一文字削除
dd・・・1行削除
yy・・・1行コピー
nyy・・・n行コピー
p・・・カーソルの文字の次、または次の行にペースト
P・・・カーソルの文字の前、または前の行にペースト
u・・・カット、ペーストを一回取り消し
検索と置換
/文字列・・・文字列の検索
n・・・下方向への再検索
N・・・上方向への再検索
:対象の行 s/検索文字列/置換文字列/オプション・・・文字列を置換する