Gå tilbake   Foreldreportalen > FPForum > Kommunikasjon > HPs vevstove

Linux/Mac: Endring av stor tekstfil med awk, sed eller grep

HPs vevstove Forum for datasnakk.

Svar
 
Trådverktøy Visningsmåter
Gammel 31-05-18, 20:52   #1
Einar
Administrator
 
Medlem siden: Jul 2008
Innlegg: 92
Einar er litt kulEinar er litt kul
Standard

Sv: Linux/Mac: Endring av stor tekstfil med awk, sed eller grep

Opprinnelig lagt inn av HP, her.

Her er en, linjen over er ikke lik for alle jeg vil fjerne.

Kode:
--
-- Table structure for table `post`
--

DROP TABLE IF EXISTS `post`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `post` (
  `postid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `threadid` int(10) unsigned NOT NULL DEFAULT '0',
  `parentid` int(10) unsigned NOT NULL DEFAULT '0',
  `username` varchar(100) NOT NULL DEFAULT '',
  `userid` int(10) unsigned NOT NULL DEFAULT '0',
  `title` varchar(250) NOT NULL DEFAULT '',
  `dateline` int(10) unsigned NOT NULL DEFAULT '0',
  `pagetext` mediumtext,
  `allowsmilie` smallint(6) NOT NULL DEFAULT '0',
  `showsignature` smallint(6) NOT NULL DEFAULT '0',
  `ipaddress` varchar(15) NOT NULL DEFAULT '',
  `iconid` smallint(5) unsigned NOT NULL DEFAULT '0',
  `visible` smallint(6) NOT NULL DEFAULT '0',
  `attach` smallint(5) unsigned NOT NULL DEFAULT '0',
  `infraction` smallint(5) unsigned NOT NULL DEFAULT '0',
  `reportthreadid` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`postid`),
  KEY `userid` (`userid`),
  KEY `threadid` (`threadid`,`userid`),
  FULLTEXT KEY `title` (`title`,`pagetext`)
) ENGINE=MyISAM AUTO_INCREMENT=4699964 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `post`
--

#!/bin/bash
sed -e '/FULLTEXT/d' |
sed -ne '
/ENGINE=MyISAM/!{H}
/ENGINE=MyISAM/{x; s/,[ \t]*$//; p; }
${g;p;}
'

Slapp å tenke, kunne bare tilpasse noe jeg fant - cat databasedump til det scriptet, og vips.

Einar er ikke aktiv   Svar med sitat
Gammel 31-05-18, 21:46   #2
Juste
Populærkulturjunkie
 
Juste sin avatar
 
Medlem siden: Oct 2006
Hvor: I Cyberspace.
Innlegg: 2.093
Blogginnlegg: 1
Juste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt liktJuste er virkelig godt likt
Standard

Sv: Linux/Mac: Endring av stor tekstfil med awk, sed eller grep

Opprinnelig lagt inn av Einar, her.

#!/bin/bash
sed -e '/FULLTEXT/d' |
sed -ne '
/ENGINE=MyISAM/!{H}
/ENGINE=MyISAM/{x; s/,[ \t]*$//; p; }
${g;p;}
'

Slapp å tenke, kunne bare tilpasse noe jeg fant - cat databasedump til det scriptet, og vips.

Og dette er hvorfor jeg aldri skal sette mine bein borti Linux...

Juste er ikke aktiv   Svar med sitat
Gammel 31-05-18, 22:07   #3
Einar
Administrator
 
Medlem siden: Jul 2008
Innlegg: 92
Einar er litt kulEinar er litt kul
Standard

Sv: Linux/Mac: Endring av stor tekstfil med awk, sed eller grep

Opprinnelig lagt inn av Juste, her.

Og dette er hvorfor jeg aldri skal sette mine bein borti Linux...

Vil ikke si tekstmassasje er et egnet eksempel å trekke frem operativsystem på. Alle moderne operativsystemer lar deg peke og klikke deg intuitivt gjennom de vanlige brukerbehovene. Det HP driver med er noe helt annet, og du ville ikke fått en enklere vei med f.eks. Windows.

Einar er ikke aktiv   Svar med sitat
Gammel 20-06-18, 18:40   #4
HP
Administrator
 
HP sin avatar
 
Medlem siden: Sep 2006
Hvor: Bergen
Innlegg: 14.054
Blogginnlegg: 6
HP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtidHP har en fantastisk fremtid
Standard

Sv: Linux/Mac: Endring av stor tekstfil med awk, sed eller grep

Opprinnelig lagt inn av Einar, her.

#!/bin/bash
sed -e '/FULLTEXT/d' |
sed -ne '
/ENGINE=MyISAM/!{H}
/ENGINE=MyISAM/{x; s/,[ \t]*$//; p; }
${g;p;}
'

Slapp å tenke, kunne bare tilpasse noe jeg fant - cat databasedump til det scriptet, og vips.

Den fungerer utmerket på Linux, men i MacOS får jeg følgende:

Kode:
MBPr:Dumps hp$ cat test.sql | ./sans-fulltext.sh 
sed: 2: "
/ENGINE=MyISAM/!{H}
/E ...": extra characters at the end of H command

Google sier at linux har GNU sed, mens MacOS har BSD sed.

Skriptet:

Kode:
#!/bin/bash
sed -e '/^\s\sFULLTEXT/d' |
sed -ne '
/ENGINE=MyISAM/!{H}
/ENGINE=MyISAM/{x; s/,[ \t]*$//; p; }
${g;p;}
'

HP er ikke aktiv   Svar med sitat
Svar

Trådverktøy
Visningsmåter

Innleggsregler
Du kan ikke starte nye tråder
Du kan ikke skrive svar
Du kan ikke laste opp vedlegg
Du kan ikke endre dine innlegg

BB code is
[IMG] kode er
HTML kode er Av
Bytt forum


Alle klokkeslett er GMT +2. Klokken er nå 22:23.


Powered by vBulletin
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Norsk: Lavkarbo.no | Selvrealisering.no
©2006 - 2015, Foreldreportalen.no