sed
と同じものを提供するためにor(フラグgrep
なし)を使用できるかどうか疑問に思います。-P
awk '{print $6}'
iOS用のスクリプトを作成していますが、サードパーティのコマンド(たとえば)をインストールしたくありませんawk
。
grep
このフラグはiOSでもサポートされていないため、サポートされて-P
いませんperl-regexp
。cut
iOSのサードパーティのコマンドです(したがっていいえcut
)。
ベストアンサー1
文字列がある場合変えるスクリプトで(質問のタイトルで述べたように)最後のフィールドを抽出したい場合は、次のことができます。
field=${string##* }
これは、文字列が$string
スペースで区切られていると仮定します(上記の変数置換でスペースを使用する区切り文字に変更)。変数置換は、指定された${variable##pattern}
ものと一致する最長のプレフィックス文字列を削除します。$variable
pattern
ファイルの場合、sed
以下は各行のスペースで区切られた最後のフィールドを抽出します。
sed 's/^.*[[:space:]]//' data.in
最後の空白文字を含む各行のすべての項目を削除してこれを行います。[[:space:]]
データでタブやスペースを区切り文字として使用しない場合は、最後の列の前の区切り文字と一致する正規表現に変更してください。