0

mysqldump コマンドのテキスト ファイルがあります。なんかこんな感じ…

INSERT INTO `agent_new` VALUES ('1', 'abc'), ('2', 'xyz'), ('3', 'pqr');

タプルのリストの最後のエントリが必要です。テーブル名も必要です。したがって、期待される出力は次のようになります

INSERT INTO `agent_new` VALUES ('3', 'pqr');

最後の行には、'pqr' などのように常に末尾にセミコロンがあります)。

実際のデータベースと比較するには、最後の行を抽出する必要があります。「テール」はできますが、もっと良い方法があるかどうか知りたいです。

4

4 に答える 4

2

使用する1つの方法は次のsedとおりです。

sed 's/(.*(/(/' file

結果:

INSERT INTO `agent_new` VALUES ('3', 'pqr');
于 2013-03-03T05:54:02.580 に答える
1

これはうまくいくかもしれません(GNU sed):

sed "s/('[^']*', '[^']*'), //g" file

また:

sed 's/('\''.*'\''),//' file
于 2013-03-03T07:53:05.013 に答える
0

区切り文字を使用すると、ストリームを選択して必要なものを取得できるはずです。しばらく構文を見ていなかったので、100% 正しくないコードを書きたくありませんが、区切り文字を含むいくつかの例をグーグルで検索することをお勧めします!

申し訳ありませんが、これ以上お役に立てませんでした (n)

于 2013-03-03T05:17:55.957 に答える
0
sed -E 's/\(.*\), //' filename

これはあなたが望むことをするはずです。

于 2013-03-03T05:46:46.570 に答える