2017-09-29 9 views
1

私は1つのファイルtest.shを持っています。この中で私のコンテンツは、私はそれは私が文字列が一致する特定の列を見つける

grep -i "/mnt" test.sh | awk -F"mnt" '{print $2}' 

を試してみましたが、出力ライン

/mnt/enjayvol1/backup/test.sh 
/mnt/enjayvol1/esync/lokesh.sh 
/mnt/enjayvol1/share/mehul 

をしたいコンテンツを/ mnt

と一致する場所の文字列を取得する

Nas /mnt/enjayvol1/backup/test.sh lokesh 
thinclient rsync /mnt/enjayvol1/esync/lokesh.sh lokesh 
crm rsync -arz --update /mnt/enjayvol1/share/mehul mehul mehul123 

のように見えていますしかし、これは私に正確な出力を与えることはありません。

grep -o '\/mnt\/[^[:space:]]*' lokesh.sh 

出力:

/mnt/enjayvol1/backup/test.sh 
/mnt/enjayvol1/esync/lokesh.sh 
/mnt/enjayvol1/share/mehul 

答えて

1

ショートのgrepアプローチを助けてくださいawkのアプローチにも従ってみてください。これがあなたに役立つかどうか教えてください。

awk -v RS=" " '$0 ~ /\/mnt/' Input_file 

出力は以下のようになります。

/mnt/enjayvol1/backup/test.sh 
/mnt/enjayvol1/esync/lokesh.sh 
/mnt/enjayvol1/share/mehul 

説明:はスペースとしてレコードセパレータを作成して、はい、その後どうなるのデフォルトの印刷でので、任意のアクションを言及していない場合は任意の行は、その中には/ mnt文字列を持っているかどうかをチェックします。それで、/ mtnが入っている行を表示します。

+0

ありがとう@RomanPerekhrest – LOKESH

+0

@LOKESH、あなたは歓迎です – RomanPerekhrest

2

はあなたでした(/mntに...パスに空白が含まれていないと仮定して)

+0

あなたはエスケープする必要はありません/ mnt / –

関連する問題