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

这是一种使用方法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 回答