引用符で囲まれた完全な単語を取得するコマンド

引用符で囲まれた完全な単語を取得するコマンド

私たちには価値がある

XX_EMAIL_GL_BTCH_ATTACH FCP_REQID=8830260 FCP_LOGIN="APPS/pwd" FCP_USERID=4807 FCP_USERNAME="USER" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "XX WBP 8-501 Misc Receipts" "[email protected]"

私たちは価値を得なければなりませんXX WBP 8-501 Misc Receipts

以下のように試しましたが、XXのみが返されます。

echo XX_EMAIL_GL_BTCH_ATTACH FCP_REQID=8830260 FCP_LOGIN="APPS/pwd" FCP_USERID=4807 FCP_USERNAME="USER" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "XX WBP 8-501 Misc Receipts" "[email protected]" | cut -d" " -f9 | sed 's/"//g'

ベストアンサー1

スキーマに応じていくつかの列を追加するだけですcut

cut -d' ' -f9-13 | sed 's/"//g'

純粋なソリューションを使用することもできますsed

sed 's/.*"\(.*\)" ".*"$/\1/'

パターンは、文字列の末尾にある2つの二重引用符によって異なります。これにより、2つのうちの最初の項目(または文字列全体から2番目の二重引用符で囲まれた部分文字列)が表示されます。

修正する:echoOPが望むように...

echo 'XX_EMAIL_GL_BTCH_ATTACH FCP_REQID=8830260 FCP_LOGIN="APPS/pwd" FCP_USERID=4807 FCP_USERNAME="USER" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "XX WBP 8-501 Misc Receipts" "[email protected]"' | sed 's/.*"\(.*\)" ".*"$/\1/'

おすすめ記事