シェルスクリプトでは、次のような問題があります。文字列。文字列内の特定の文字の出現箇所を見つけて表示する(シェル/ AIX)
解決策はいくつか見つかりましたが、問題はLinuxシェルではなくAIXシェルで動作することです。
例:
文字列は次のようなものになります。
someString-10.12.16.somestring.sql
(はい、それはファイル名です)
私はgrepのでそれを試してみました:AIXの下 echo $string | grep -aob '\.' | sed -n '2p' | cut -c 1-2)
が、grepがサポートしていませんがオプション-ob
私はsedで試しました:sed 's/\([^\.]*\..*\)\..*/\1/' | wc -c
しかし、私はエラーメッセージが表示されます:sed: Function s/\([^\.]*\..*\)\..*/\1/ cannot be parsed
誰でも私にAIXシェルで実行されるソリューションを提供できますか? 各ドットについて、そのドットの位置を返す1つのコマンド。
ありがとう:-)
期待どおりの結果が得られましたか?あなたが投稿した例は、2番目の発生を返します。すべての出来事のリストが必要ですか?私はあなたが「各ドットについて、そのドットの位置を返すコマンドを1つ」とは何を意味するのか分かりません。 –
いいえ、私は発生のリストは必要ありません。私は特定のドット/ピリオドの番号としての位置を私に与えるコマンドが必要です。 解決策が見つかりました: 'echo" someString.0.4.text "| tr。 '\ n' | sed -n '2p' | wc -c' しかし、wc -cコマンドは戻り値の前にスペースをいくつか表示しますが、それはなぜですか? 私はそれらを切り取り、後で私の完全な解決策を印刷します。 – churks