我经常测试SQL查询,然后需要将其作为字符串粘贴到Java IDE中。
例如:
SELECT
col1,
col2
FROM table
WHERE....
应该成为:
+ " SELECT "
+ " col1, "
+ " col2 "
+ " FROM table "
+ " WHERE...."
我想在我的IDE中运行一个外部脚本(请参见屏幕图片来定义它),但是我在编写脚本时遇到了麻烦。我尝试过各种形式的awk和bash printf,但最后我得到的只是垃圾或者开头和结尾的引号,而不是每一行。
以前有人做过这样的事吗?
这是我最近的尝试。它会删除\ n&n;并且仅包装整个字符串,而不是每行。谢谢你的任何建议。
#!/bin/bash
awk '{printf("+\"%s\"\n", $0);}' <<< $1
后续
我最终在命令行上使用了以下脚本。它工作正常。根本问题是我在$ 1参数附近没有引号,因此它丢弃了换行符
#!/bin/bash
#
# Print the first line (NR==1) with the String variable initialization.
# Print subsequent lines starting with a "+" and the contents wrapped in quotes.
#
echo "$1" | awk 'NR==1 {printf(" String sqlText = \"%s \"\n", $0)} NR>1 {printf(" + \" %s \"\n", $0);}'
我输出这样的东西。在我的IDE对齐一切之后,它看起来很好。您可能需要调整前导空格以适合您的设置。
String sqlText = "SELECT "
+ " col1, "
+ " col2, "
+ " col3, "
+ " col4, "
+ " FROM my table "
答案 0 :(得分:0)
以下sed命令会删除每行中的所有前导和尾随空格,并在开头添加+ "
并在末尾添加"
(空格,“)。< / p>
$ sed 's/^\s*\(.*\)\s*$/+ " \1 "/g' file
+ " SELECT "
+ " col1, "
+ " col2 "
+ " FROM table "
+ " WHERE.... "