cat, head, tail -ファイル内容の表示と読み飛ばし
ループを用いた文字列の操作
ファイル内の各文字列を操作する場合は次のようにする。
でも後者の方法はhtmlファイルをいじろうとしたとき、行が単語ごとに分割されて上手くいかなかった記憶がある。
文字列の分割
cutを使う。
-d: 分割点となる文字を指定する。
-f: 分割した要素の何番目かを指定する。
-c: 文字列の何文字目から何文字目までを抜き出すか指定する。
(例)
次のようなテキストファイルがあるとする。
hoge,hogehoge
fuga,fugafuga
これに対して以下を実行する。
文字列内の文字列検索
echoとgrepでいける。
文字列内の文字列検索:個数を調べる
awkと
indexで対象文字列をひとつめの検索文字列以降の文字列に更新する。
これを繰り返せばカウントできるが、特殊文字を変数として与えると上手くいかなかった。
次の方が圧倒的にシンプルで、特殊文字にもちゃんと対応している。
ソースはこちら:
+
シェルスクリプトで特定文字が何>回現れるかカウントする - eTuts+ Server Tutorial
ある文字(列)で文字列を分割し、最後の要素を取り出す
grepで
なぜこうなるのかはこちらを参照。
+
Grepの「-o」オプションを活用し>最後に一致した要素だけ出力する - Bye Bye Moore
あるいは文字列を反転してひとつ目の要素を取り出し、再度反転するという方法もある。
書式の指定
printfを使う。
もちろんprintfで出力される文字列を`などで変数に格納することもできる。
とりあえずよく使うものをその都度書いていこうと思う。
%s : 文字列(うろ覚え)
%d : 整数
%*d : *桁 右詰め
%-*d: *桁 左詰め
%0*d: *桁 ゼロパディング
%A.Bf: 全体でA桁(小数点含む), 小数点第B位まで表示