我有一个mysqldump命令的文本文件。它看起来像这样......
INSERT INTO `agent_new` VALUES ('1', 'abc'), ('2', 'xyz'), ('3', 'pqr');
我需要元组列表中的最后一个条目。我还需要表名。所以预期的输出将是
INSERT INTO `agent_new` VALUES ('3', 'pqr');
最后一行总是在末尾有一个半冒号,例如'PQR');
我需要提取最后一行以与实际数据库进行比较。我可以做“尾巴”,但我想知道是否有更好的方法。
答案 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
这应该做你想要的。