Mam paranoję na ten temat, ale mam nadzieję, że to proste pytanie:
Czy jest jakaś różnica między
cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt
i
cat file1|egrep -oP "[Mm]y string">/home/user/file.txt
tzn. czy ma to znaczenie, jeśli mam spacje wypełniające znaki potoku (|) i przekierowania (>)? Jestem naprawdę paranoikiem, że mając spacje, spacje w jakiś sposób trafią do pliku wyjściowego, kiedy tego nie chcę. Czy ktoś może to wyjaśnić? (Jeśli to ma znaczenie, użyj Ubuntu 12 / bash).
shell
command-line
shell-script
Magnus
źródło
źródło
|
lub>
wpisanie wCtrl-W
celu usunięcia poprzedniego „słowa” spowoduje usunięcie więcej, niż prawdopodobnie chciałeś. Tak samo dla naciśnięcia klawiszy kursora-przemieszczania jakEsc-f
iEsc-b
itpOdpowiedzi:
W wierszu poleceń powłoki spacje bez cudzysłowu służą jedynie do ograniczania słów podczas analizowania poleceń. Nie są one przekazywane, ani w argumentach, które widzi polecenie, ani w standardowym strumieniu wejściowym.
źródło