文字列操作に利用するcut,sed,trは指定したファイルまたはパイプで引き渡された値を処理し,その結果を表示する。そのため,それぞれのコマンドの後に引数で変数内の値を与えても,処理されずにエラーが発生してしまう。 そこで,変数の値をcut,sed,trで処理したい場合には,echoで変数内の値を処理し,その結果をパイプでそれぞれのコマンドで渡す。つまり,以下のように記述する。
![【 変数の値の文字列操作 】](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)
ちょっとしたスクリプトを作っていた際、文字列の抜き出しを多様する処理があったので忘れないように残しておく。 2017/01/14 追記 個人的な好みで、変数へ代入をしてこなかった(スクリプト書かずにシェル芸で対応することのほうが多いため)のだが、スクリプトで書くなら変数に代入してからパラメータ展開によって文字列を抜き出す方法もあるので、念のため追記しておく。 左から◯文字 cut -c [開始文字(個数)]-[終了文字(個数)] [root@test-node ~]# # 例:左から1文字目~4文字目 [root@test-node ~]# echo abcdefghijk | cut -c 1-4 abcd [root@test-node ~]# [root@test-node ~]# # 例:左から2文字目~5文字目 [root@test-node ~]# echo abcdefghi
例:"myokoym(25)"の括弧内の数字だけを取り出したい場合。 1.cutを使う http://www.k4.dion.ne.jp/~mms/unix/linux_com/cut.html $ echo "myokoym(25)" | cut -d"(" -f2 | cut -d")" -f1 25 上記は、cutコマンドを区切り文字指定で使用する例です。 「-dオプションで区切り文字を指定し、-fオプションでn番目に区切られている文字列を切り出す」という処理を2回繰り返しています。(nは1から始まる) 2.sedを使う http://www.k4.dion.ne.jp/~mms/unix/linux_com/sed.html $ echo "myokoym(25)" | sed -e "s/^.*(\(.*\)).*$/\1/" 25 上記はsedのsコマンドで、文字列の置換を行っ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く