メニュー

  • トップページ
  • 自己紹介
  • 連絡先
  • 論文
  • 発表

  • 常識メモ

  • 140文字
    カウンター

メモ

awk, sed, shスクリプト(簡単なメモ)

awk

例文:3項目が$Mと一致する行を出力
% awk '($3 == '$M') {print $0" "}' all.dat >> out.txt
ちっぷす
  • 書式 : awk_コマンド_対象ファイル
  • コマンドは、’’で囲む。
  • コマンドの中に条件文を入れ、条件文は()で囲む。
  • コマンドの中に手続きを入れ、手続きは{}で囲む。
  • プリント(手続きの一つ)の中に普通の文字を入れるには、””で囲む。
  • コマンド中に外部の『メタキャラクタ』を入れたい時は、’’で囲む(一度閉じて、開く感じ)。
  • 条件判定の書式 < > <= >= == !=

sed

以下、幾つかサンプルを記載。
% sed '3s/aa/ZZ/g' a.txt
3行目のaaをZZに置換する。最初の3が無ければ、全ての行。 最後のgが無ければ、1個置換したらその行は終了。
% sed '3s/\(.*\)/neko/' a.txt
3行目を消して、nekoにする。 3sを/aa/sにするとaaを含む行を全てnekoにする。
% sed '2,4d' a.txt
2,3,4行目を削除。'3d'なら3行目を削除。
% sed -n '2,4p' a.txt
2,3,4行目のみを出力。'3p'なら3行目のみを出力。
% sed '/aa/,/^c/d' a.txt
上のdやpの例文を、行番号指定から条件指定に変更した物。「aaを含む行」から「cで始まる行」までを削除。'/^#/d'なら#で始まる行を全て削除。
% sed 's/[ -~]//g' a.txt | sed '/^$/!=' | sed '/^$/d'
2バイトフォントが入っている場所を探す。英文ファイル用。
% sed -i .bak 's/aa/ZZ/g' a.txt
-iオプションでファイルを直接編集する。.bakは、バックアップファイルを作成する。-iが無ければ標準出力(画面に表示)するだけ。

shスクリプト (csh, tcsh)

変数への代入
set n = ""
ループ文
foreach L( 2 3 4 )
(中略)
end
コマンドの引数への代入(ここでは、1,2を代入してる)
echo 1 2 | a.out
計算
@ m = $L + 10
お手軽100回ループ
@ i = 1
while ($i <= 100)
echo $i
@ i ++
end
★おまけのパール
% perl -ple 's/ +/,\t/g' file.txt
みたいな感じのコマンドでスペースをコンマ+タブに変換できるようです(394 K原)。
項目一覧: 出張用, 海外出張用, 10のべき乗, 文字・改行コード, awk,
マック, viエディタ, Linux, 緯度と経度, tweet文字数, 博多弁変換,
きみしつているか, 充電電池, PP Tips, バイク, 経済 / トップページ

Home
Copyright (C) 2013 Yoji KUBOTA