පයිප්ප සමඟ ඔරලෝසුව භාවිතා කිරීම


190

මම මෙම විධානය ක්‍රියාත්මක කිරීමට කැමතියි:

watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine

නමුත් එය දුවන්නේ නැත, මන්ද "මම හිතන්නේ" ග්‍රෙප් වලිගය වෙනුවට ඔරලෝසුව මත ධාවනය කිරීමට උත්සාහ කරයි ...

වැනි දෙයක් කිරීමට ක්‍රමයක් තිබේද?

watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)

ගොඩක් ස්තුතියි!

Answers:


283

උපුටා දැක්වීම් සමඟ විධානය වට කරන්න

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

3
නල මාර්ගයේ මිල ගණන් (වැනි awk '{print $3}') අඩංගු වන්නේ නම් කුමක් කළ යුතුද? සංස්කරණය කරන්න: මේ වගේ
OrangeDog

3
ඔබට එම අක්ෂර වලින් \, එනම්watch -n 'awk \'{print $3}\''
ලෙව්

31

මම වැරදියි, නමුත් මෙය එකම දේ සාක්ෂාත් කර නොගනීද (ගැලපෙන ලොග් රේඛා එකතු වන විට ඒවා බැලීම) වඩාත් සරලව?

tail -f -n 200 log/site_dev.log | grep Doctrine

8
CPU සම්බන්ධයෙන් ගත් කල මෙය වඩාත් කාර්යක්ෂම විය හැකි බව මම එකඟ වෙමි, නමුත් "පයිප්ප සමඟ ඔරලෝසුව භාවිතා කිරීම" යන මාතෘකාවේ සන්දර්භය තුළ එය ඔරලෝසුව භාවිතා නොකරන බැවින් පිළිතුරක් නොවේ. ඔරලෝසුව සහ පයිප්ප නිතරම වලිගයේ සන්දර්භය තුළ නොපෙනෙන බැවින් මෙය දුර්වල උදාහරණ ප්‍රශ්නයකි.
tu-Reinstate Monica-dor duh

1
නැහැ, මම හිතන්නේ ඔබ ක්‍රම සහ අවසානය අවුල් කරනවා. Doctrineවර්ධනය වන ගොනුවකට පැමිණීම පරිශීලකයාට පැහැදිලිවම අවශ්‍ය වූ අතර, ඔහු සිය මෙවලම් පෙට්ටිය දෙස බැලූ විට, ඔහු සොයාගත් එකම දෙය එය විය watch. ඔහුට සැබවින්ම දැන ගැනීමට අවශ්‍ය වූයේ tail -fඑයයි. මෙයද බලන්න meta.stackexchange.com/questions/66377/what-is-the-xy-problem
dland

11
මම හිතන්නේ මේ දෙකම පිළිගත හැකි පිළිතුරු ය. ඉහළ සහ පිළිගත් පිළිතුර නිවැරදිව ඇසූ ප්‍රශ්නයට නිවැරදිව පිළිතුරු සපයන අතර, මෙම පිළිතුර OP විසින් තමන් විසින්ම නිර්මාණය කරන ලද XY ගැටලුව නිවැරදිව හඳුනාගෙන ඔවුන්ට සැබවින්ම අවශ්‍ය විසඳුම මුලින් ලබා දෙයි. මෙම ප්‍රශ්නය හමු වන කෙනෙකුට පිළිතුරු දෙකම පහසුවෙන් ප්‍රයෝජනවත් වේ.
cdhowie

2
මම නැරඹීමට ක්‍රමයක් සොයමින් සිටි shellcheck *.sh | grep line | wc -lඅතර පිළිගත් පිළිතුර මට ප්‍රයෝජනවත් විය.
Amedee Van Gasse

4

ඔබට උපුටා දැක්වීම් සමඟ විධානය වට කළ හැකිය:

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

විධානයට එහි උපුටා දැක්වීම් තිබේ නම්, සුදුසු ගැලවීම සමඟ ඔබට වෙනත් ආකාරයේ උපුටා දැක්වීම් භාවිතා කළ හැකිය:

watch -n 1 $'tail -n 200 log/site_dev.log | fgrep \'Doctrine.*\''

ඔබ ඉතා දක්ෂ දෙයක් කිරීමට උත්සාහ කරන්නේ නම්, විධාන හෝ විධාන ස්ක්‍රිප්ට් එකක දමා එය ඔරලෝසුවෙන් භාවිතා කරන්න:

cat <<EOF >/tmp/watch-command
tail -n 200 $(pwd)/log/site_dev.log | fgrep Doctrine
EOF
chmod +x /tmp/watch-command
watch /tmp/watch-command

අවශ්‍ය නම් සාපේක්ෂ මාර්ග සඳහා වග බලා ගන්න.


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.