[bash] edycja jednej z linii w pliku txt

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
neib
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 15 sty 2011, 17:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

[bash] edycja jednej z linii w pliku txt

Post autor: neib »

Witam. Mam bazę książek w pliku txt:
NUMER#ID ksiazki#tytul#autor
1#11#1#1
2#22#2#2
3#33#3#3
Potrzebuję komendy, która pozwoli wybrać daną linię (np. tą z pożądanym tytułem), a następnie wyświetli ją w trybie edytowania, tak bym np. mógł wyświetlić całą linię dotyczącą książki A i zmienić jej tytuł na B. Pozdrawiam
Awatar użytkownika
B.A.D.
Sędziwy Jeż
Sędziwy Jeż
Posty: 96
Rejestracja: 14 lis 2010, 21:16
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] edycja jednej z linii w pliku txt

Post autor: B.A.D. »

no więc najłatwiej będzie chyba tak:

Kod: Zaznacz cały

cat plik_z_ksiażkami | grep A | sed 's/A/B/'
można oczywiście dodać zmienne i przerobić na bashowy skrypt:)
-Ice cream... I like an ice cream.
-Yeah? What flawor?
-Doesn't matter... it's for my ass.
neib
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 15 sty 2011, 17:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [bash] edycja jednej z linii w pliku txt

Post autor: neib »

A jak zrobić żeby na ekranie pojawiła się szukana linijka np. : 3#33#3#3 z możliwością jej edycji żebyśmy mogli zamiast 33 wpisać samą 3 !?
Awatar użytkownika
B.A.D.
Sędziwy Jeż
Sędziwy Jeż
Posty: 96
Rejestracja: 14 lis 2010, 21:16
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] edycja jednej z linii w pliku txt

Post autor: B.A.D. »

hmm to już grubsza sprawa, może w taki sposób, że jeśli znasz numer pozycji książki i powiedzmy jest to numer A:

Kod: Zaznacz cały

cat plik_z_ksiażkami | grep A > tmp
sed plik_z_ksiazkami -i -e 's/^A//' #tutaj usuwamy wpis z pliku
vim tmp
echo >> plik_z_ksiazkami
cat tmp >> plik_z_ksiazkami
tyle że stracisz wtedy kolejność numeracji.. jeśli zrezygnujesz z niej może będzie łatwiej szukać książek tylko po ID?
innym sposobem jest stworzenie bazy danych ale to już grubsza piłka:)
-Ice cream... I like an ice cream.
-Yeah? What flawor?
-Doesn't matter... it's for my ass.
neib
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 15 sty 2011, 17:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [bash] edycja jednej z linii w pliku txt

Post autor: neib »

A jak w awk włączyć żeby ignorował wielkość liter ?!
Awatar użytkownika
B.A.D.
Sędziwy Jeż
Sędziwy Jeż
Posty: 96
Rejestracja: 14 lis 2010, 21:16
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] edycja jednej z linii w pliku txt

Post autor: B.A.D. »

wpisujesz po prostu w liście dużą i małą literkę [Aa]. innym sposobem jest użycie funkcji toupper albo tolower i wtedy nie musisz już rozpoznawać wielkości liter.
polecam lekturę:
http://e-portalik.net/awk/gawk_5.html#SEC32
-Ice cream... I like an ice cream.
-Yeah? What flawor?
-Doesn't matter... it's for my ass.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości