Wyszukaj określony tekst z pliku i wypisz wiersz (skrypt powłoki)

12

Załóżmy, że mam zmienną $ str1

str1="20140121-21:48:26|Joanne Frances|"

Chcę przeszukać tę część pliku. Plik zawiera na przykład:

20140121-21:48:26|Joanne Frances|Perez|9173046751.000000|Mar 31|
20140121-21:50:28|Nikko|Real|9065887272.000000|Mar 21|
20140121-22:22:53|Czarina|Revilla|9999999999.000000|Jan 21|

Dane wyjściowe powinny być:

20140121-21: 48: 26 | Joanne Frances | Perez | 9173046751.000000 | 31 marca |

Aktualizacja: W końcu dowiedz się, do cholery, jaki jest problem, który próbowałem rozwiązać, echo $str1i 20140121|Adrian Perez|oznacza on, że tak naprawdę NIE jest w pliku. Haaa! Jestem takim bałaganem! -_-

Joanna_
źródło
możesz po prostu użyć grep. np.grep $str filename.txt
mcantsin
@mcantsin Próbowałem tego, to nie zadziałało
joanne_
a jaki jest błąd? - Brak wyjścia?
mcantsin
@mcantsin yup brak danych wyjściowych!
joanne_
Przetestowałem twój przykład i działa dla mnie idealnie. - Pewnie, że nie ma literówki?
mcantsin

Odpowiedzi:

12

Użyj tego:

grep "$str" filename.txt

aby zapobiec błędnej interpretacji znaków specjalnych.

Aby dowiedzieć się więcej, zapoznaj się z tym:

Praca w
źródło