2017-07-25 2 views
2

-wはgrepを使用せずに、QNXでの完全一致を見つける:私はQNXとPOSIX準拠したLinuxの</p> <p>詳細と互換性のあるファイルに完全一致を見つける必要があるスクリプトを書いている

イムは、私が書いたオリジナルのコマンドは、POSIX準拠したLinuxの

で完璧に動作

user=$(ps -aux | awk '{print $1 " " $2}' | grep -w ${process} | awk '{}print $1') 

たので、プロセスの利用者を見つけようとしてしかし、QN​​Xは完全POSIではありませんXに準拠しており、grep -wは私のターゲットには使用できません...だから私は完全一致を見つける必要はありませんgrep -w

+0

私はawk' 'の単一の呼び出しは、あなたがawkの'で達成することを望むものは何でもできると信じてし... | grep ... | awk ... 'はほとんど常に貧弱な構造です。あなたの 'ps'のサンプル出力を見せて、どの部分が何にマッチする必要があるのか​​を説明してください。 3つの 'qnx'タグを' awk'で置き換えることも考えてください。 –

+0

私の目標は、プロセスIDを与えられたプロセスのユーザーを取得することです。最初のawkのためのps -auxコマンドからすべてのガベージ値を削除する必要があります(IDとユーザー名のみのawkです。次のgrep -wを壊す可能性のある他の数字をすべて削除する)IDをgrep -wする(正規のgrepが両方を引き出す11と1112のIDを持つことができるので正確なものが必要)変数に保存される... –

+0

はい、 'awk'/\ /{何か} 'のような単語区切り文字を持つ単一の 'awk'を使用してください' –

答えて

1

私はあなたがフィールド2が正確なものと一致した場合、フィールド1を印刷したいと思う:

ps -aux | awk -v p=$process '$2==p{print $1}' 
0

-wはgrepのPOSIXオプションとして有効ではありません。 POSIXシステム間で移植可能とされています。いつもps -p $ 1 -o user =?ユーザーがプロセスIDと同じである可能性がある場合は、grepとawkを使って何をするつもりですか?

+0

ありがとう私は正直なところ-wはgrepだったのでposixだったと思っています...また、IDのような数字の文字列であるユーザーを持たないことを計画していますので、その可能性を無視しています...しかし、状況が発生した場合にポップアップする警告(これはエンジニアによって使用されているため、発生した場合にエッジケースを処理できます) –

関連する問題