私はいくつかの文字列を変更して削除するためにskipを作っていますが、今度は "InnoDB DEFAULT"という単語を ")"に変更する必要があります。Grep + sedの組み合わせ
スクリプト: "最初に、私たちは、できるだけを表示するには、ファイルをはがします"
:#! /bin/bash
ub1=foo1.sql;
ub2='';
pelar1=`grep -v "LOCK TABLES" $ub1 | sed -e '/^$/d' > p5`
pelar2=`grep -v "[--]" p5 | sed -e '/^$/d' > p4`
pelar3=`grep -v "[/*!]" p4 | sed -e '/^$/d' > p3`
pelar4=`grep -v "DROP TABLE IF EXISTS" p3 | sed -e '/^$/d' > p2`
pelar5=`grep -v "ENGINE=InnoDB DEFAULT" p2 | sed -e "/^$/s/" > limpio`
問題がpelar5に
eliminacion=`rm p5 p4 p3 p2`
var1=''
var2=''
count=0
#primero vamos a pelar el archivo para que muestre lo menos posible
私は開始時に与え荒い翻訳したものです
$pelar1
$pelar2
$pelar3
$pelar4
foo.sql
DROP TABLE IF EXISTS `tabla`;
CREATE TABLE `tabla` (
`colmn1` varchar(20) DEFAULT NULL,
`colmn2` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `tabla` VALUES ('13','20');
希望コード:
DROP TABLE IF EXISTS `tabla`;
CREATE TABLE `tabla` (
`colmn1` varchar(20) DEFAULT NULL,
`colmn2` varchar(20) DEFAULT NULL
);
INSERT INTO `tabla` VALUES ('13','20');
こと、その出力:pelarを割り当てる
DROP TABLE IF EXISTS `tabla`;
CREATE TABLE `tabla` (
`colmn1` varchar(20) DEFAULT NULL,
`colmn2` varchar(20) DEFAULT NULL
INSERT INTO `tabla` VALUES ('13','20');
サンプル入力と期待される出力を表示することはどうですか? –
空白行を出力から冗長に削除する 'grep -v'行で達成しようとしていたことを説明できますか? –