たとえば、私は文字列:[email protected]
を持っています。bash with symbol with split
test2
この文字列の一部を取得する必要があります。どのように私はbashでこれを行うことができますか?
たとえば、私は文字列:[email protected]
を持っています。bash with symbol with split
test2
この文字列の一部を取得する必要があります。どのように私はbashでこれを行うことができますか?
Parameter Expansionを使用する:
str='[email protected]'
echo "${str#*@}"
#
文字ががパターンにマッチする拡張の最小プレフィックスを削除すると言います。%
文字の意味パターンに一致する拡張子の最小接尾辞を削除します。(ですから、"test1"
一部を取得するために"${str%@*}"
を行うことができます。)/
文字は、次のパターンに一致する拡張の最小と最初の部分文字列を削除し意味します。 Bashはそれを持っていますが、POSIXではありません。パターンの文字を2倍にすると貪欲に一致します。
##
を意味します。パターンに一致する拡張の最大接頭辞を削除します。%%
意味パターンに一致する拡張子の最大接尾辞を削除します。//
の意味パターンに一致する拡張のすべての部分文字列を削除します。test2の代わりにtest1を印刷するにはどうすればよいですか? –
@ChrisF私はどのようにそれを行うために私の答えを拡大しました。 – kojiro
echo "[email protected]" | sed 's/.*@//'
または、bashで、 'xxx =" test1 @ test2 "; sed 's /.*@//' <<< $ x'。 –
@JonathanLeffler私はあなたがここで何を意味しているか知っていますが、いくつかの 'x'esを逃していませんか? – kojiro
ええと...はい、それは 'dos equis'がエスケープされたようです。コメントを編集するのはちょっと遅いです... –
echo "[email protected]" | awk -F "@" '{print $2}'
または、bashで 'awk -F" @ "'{print $ 2}' <<<" test1 @ test2 "' – kojiro
バッシュで別の方法:の
[email protected] read left right <<< "$string"
echo "$right"
可能重複[bashで文字列操作。 。 。先頭のセクションを削除する](http://stackoverflow.com/questions/2680274/string-manipulation-in-bash-removing-leading-section) – Kaz