アプリ版:「スタンプのみでお礼する」機能のリリースについて

sedなどで、特定の文字列からタブ文字までの数値を抽出したい
シェルスクリプト内で、sedなどを使って特定の文字列を抽出したいのですが、どうすればいいでしょうか?
たとえば、999 2016-09-28 00:00のなかから、タブ1文字までの「999」を抜き出したいです。
※999の後には、タブ(\t)が1文字あります。

999 2016-09-28 00:00 | sed -e 's///g'...

のようにして実行させたいです。

A 回答 (4件)

sedでやるなら


echo "\t999\t2016-09-28 00:00" | sed 's/^\t\([0-9]*\)\t.*$/\1/;'

結果
999
    • good
    • 0

可能だったら cut の方が簡単じゃないかねぇ.

    • good
    • 0

シェル内で記述なら以下のようになります。

シェルはbashとします。
正規表現を使用する場合は、sedでなくperlのほうが良いかと思います。
-------------------------
#! /bin/bash
str="\t999\t2016-09-28 00:00"
str0=`echo -e $str | perl -pe 's/^\t(\d*?)\t.*$/$1/;'`
echo $str0

-----------------------
以下、実行結果です。
999
    • good
    • 0

補足要求です。


前の質問では、999の前にjobがありましたが、
この質問では、999は文字列の先頭に存在すると考えて良いですか?
又、999の前にスペースもないと理解していますが、それで間違いないですか?
    • good
    • 0
この回答へのお礼

999は文字列の先頭で、999の前にはスペースはなくタブが1文字ある状態になります。

お礼日時:2016/10/05 16:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!