![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Infoga text i början av filen | netwolf | High Level Programming | 3 | 05-27-2008 01:20 |
| Hur infoga text i mitten av en fil | kartikkumar84 @ g | UNIX for Dummies Frågor & Svar | 6 | 05-10-2008 03:35 |
| infoga text till en fil log | Bucci | Shell-programmering och Skript | 4 | 05-09-2007 08:19 |
| infoga text i början av filen | jimbob | Shell-programmering och Skript | 1 | 09-22-2006 06:46 |
| infoga text i en dinamic fil | Sunbird | UNIX for Dummies Frågor & Svar | 2 | 11-05-2001 10:58 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Från kommandoraden användning
(Observera att dessa måste fyllas på separata rader.) Då infogas på den första raden i filen. sed '1 I \ din text goes here "filnamn> new_filename Detta kommer att lägga på den sista raden i filen. sed "$ a \ din text goes here "filnamn> new_filename Observera också att med sed du styra produktionen och byta namn på filen igen. Så "mv new_filename filnamn när du är klar med dessa kommandon. |
|
||||
|
Cool detta verkar fungera. Problemet jag har nu är att strängen jag försöker infoga innehåller tecknet som strider mot sed '1 I \ linje. Ordaniril de får ignoreras.
Om jag försöker fly den här strängen: sed '1 I \ EXEC PR_DbConfigStart \ 'test.txt \ ", \" 10 \', \ 'DESCRIPTION \' \ GO '<$ FILENAME> $ TMPFILENAME Jag får detta felmeddelande syntax error på rad 8: `''omatchade om jag försöker bygga strängen i en miljövariabel och lita på substitution, verkar strängen nt att få ersatt. DBCONFIGSTART \u003d "EXEC PR_DbConfigStart" test.txt ', '10', 'Beskrivning' \ NGO " sed '1 I \ $ DBCONFIGSTART '<test2.txt producerar denna produktion $ DBCONFIGSTART resten av filen text. Har någon några idéer hur jag kan lösa detta |
|
||||
|
Vanligen i unix måste du interchange citationstecken och apostrof - när det ena eller det andra används inom .. så här.
Så med sed kommando användning: sed "1i \ din text har några's apostrofer's in here "filnamn> new_filename |
|
||||
|
Ouch,
Jag får felmeddelandet: sed: Kommando förvrängd: 1iEXEC PR_DbConfigStart "test.txt ', '10', 'Beskrivning' när jag prova det här. Här är skriptet im användande #! / usr / bin / ksh FILENAME \u003d test2.txt TMP \u003d. $ TMP TMPFILENAME \u003d $ FILENAME $ TMP sed -e "1i \ EXEC PR_DbConfigStart 'some text', '10 ',' Beskrivning ' "<$ FILENAME> $ TMPFILENAME |
|
||||
|
Hur är det för det uttalande som lägger till data till slutet av filen?
sed "$ a \ \ PR_DbConfigEnd $ FILENAME "<$ FILENAME> $ TMPFILENAME Jag får felmeddelandet: sed: Kommando förvrängd: \ Om jag tar bort den andra snedstreck: sed "$ a \ PR_DbConfigEnd $ FILENAME "<$ FILENAME> $ TMPFILENAME Jag får detta felmeddelande: sed: Kommando förvrängd: PR_DbConfigEnd test2.txt |