提取最后一个元组

时间:2013-03-03 05:07:39

标签: sed awk grep

我有一个mysqldump命令的文本文件。它看起来像这样......

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

我需要元组列表中的最后一个条目。我还需要表名。所以预期的输出将是

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

最后一行总是在末尾有一个半冒号,例如'PQR');

我需要提取最后一行以与实际数据库进行比较。我可以做“尾巴”,但我想知道是否有更好的方法。

4 个答案:

答案 0 :(得分:2)

这是使用sed的一种方式:

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

结果:

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

答案 1 :(得分:1)

这可能适合你(GNU sed):

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

或:

sed 's/('\''.*'\''),//' file

答案 2 :(得分:0)

使用分隔符,您应该能够选择流并选择您想要的内容。 我一段时间没看过语法,所以我不想写一些不是100%正确的代码,但我建议用谷歌搜索一些涉及分隔符的例子!

抱歉,我无法提供更多帮助(n)

答案 3 :(得分:0)

sed -E 's/\(.*\), //' filename

这应该做你想要的。