Sprzedaż.txt
Data Kwota Obszar
01.01.2020 60000 Dhaka
10.02.2020 76000 Radźszahi
21.03.2020 54000 Chulna
15.04.2020 78000 Czandpur
17.05.2020 45000 Bogra
06.02.2020 67000 Comilla
Zastąp ciąg w pliku poleceniem `sed`
Podstawowa składnia ` sed Polecenie ` do zamiany określonego łańcucha w pliku jest podane poniżej.
Składnia
sed -i 's/ciąg_wyszukiwania/zamień_ciąg/'Nazwa pliku
Każda część powyższej składni jest wyjaśniona poniżej.
'-i' Opcja służy do modyfikowania zawartości oryginalnego pliku za pomocą ciągu zastępczego, jeśli szukany ciąg istnieje w pliku.
's' wskazuje polecenie zastąpienia.
'szukana fraza' zawiera wartość ciągu, która będzie przeszukiwana w pliku w celu zastąpienia.
„zamień_ciąg” zawiera wartość ciągu, która zostanie użyta do zastąpienia zawartości pliku, który pasuje do 'szukana fraza' wartość.
'Nazwa pliku' zawiera nazwę pliku, w którym zostanie zastosowane wyszukiwanie i zamiana.
Przykład 1: Zastąp plik poleceniem „sed”
W poniższym skrypcie tekst wyszukiwania i zamiany zostanie pobrany od użytkownika. Jeśli wyszukiwany ciąg istnieje w „Sales.txt”, zostanie zastąpiony ciągiem zastępczym. Tutaj zostanie przeprowadzone wyszukiwanie z uwzględnieniem wielkości liter.
#!/kosz/bash# Przypisz nazwę pliku
Nazwa pliku=„Sprzedaż.txt”
# Weź ciąg wyszukiwania
czytać -P 'Wprowadź szukany ciąg: 'Szukaj
# Weź zamienny ciąg
czytać -P 'Wprowadź zastępujący ciąg: 'wymienić
Jeśli [[ $search !='' && $zamień !='' ]];następnie
sed -i 's/$search/$zamień/ ' $nazwa pliku
być
Wyjście
Przykład 2: Zastąp plik poleceniem „sed” z flagą „g” i „i”
Poniższy skrypt będzie działał jak poprzedni przykład, ale ciąg wyszukiwania zostanie przeszukany globalnie dla flagi „g”, a wyszukiwanie bez uwzględniania wielkości liter zostanie wykonane dla flagi „i”.
#!/kosz/bash# Weź ciąg wyszukiwania
czytać -P 'Wprowadź szukany ciąg: 'Szukaj
# Weź zamienny ciąg
czytać -P 'Wprowadź zastępujący ciąg: 'wymienić
Jeśli [[ $search !='' && $zamień !='' ]];następnie
sed -i 's/$search/$zamień/dawać' 1 zł
być
Wyjście
Przykład 3: Zastąp plik poleceniem „sed” i dopasowaniem wzorca cyfr
Poniższy skrypt wyszuka całą zawartość liczbową w pliku i zastąpi zawartość, dodając „$” symbol na początku liczb.
#!/kosz/bash# Sprawdź, czy wartość argumentu wiersza poleceń istnieje, czy nie
Jeśli [ 1 zł !='' ];następnie
# Przeszukaj cały ciąg zawierający cyfry i dodaj $
sed -i 's/[0-9]{5}/$&/g' 1 zł
być
Wyjście
Zastąp ciąg w pliku poleceniem `awk`
Ten ' awk” polecenie to inny sposób na zastąpienie ciągu w pliku, ale to polecenie nie może zaktualizować oryginalnego pliku bezpośrednio, jak „ ale Komenda.
Przykład 4: Zastąp plik poleceniem „awk”
Poniższy skrypt zapisze zaktualizowaną zawartość w temp.txt plik, którego nazwa zostanie zmieniona przez oryginalny plik.
#!/kosz/bash# Sprawdź, czy wartość argumentu wiersza poleceń istnieje, czy nie
Jeśli [ 1 zł !='' ];następnie
# Przeszukaj cały ciąg na podstawie daty
awk '{sub('02/06/2020','12/06/2020')}1' 1 zł >temp.txt&& mvtemp.txt1 zł
być
Wyjście
Wniosek
W tym artykule pokazano, jak używać skryptów bash do zastępowania określonych ciągów w pliku. Zadanie zastąpienia ciągu znaków w pliku powinno być łatwiejsze po przećwiczeniu powyższych przykładów.