小编MCS*_*MCS的帖子

如何以CSV格式输出MySQL查询结果?

有没有一种简单的方法可以从Linux命令行运行MySQL查询并以CSV格式输出结果?

这就是我现在正在做的事情:

mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/        /,/g' | tee list.csv
select id, concat("\"",name,"\"") as name
from students
EOQ
Run Code Online (Sandbox Code Playgroud)

当有很多列需​​要用引号括起来,或者结果中有引号需要转义时,它会变得混乱.

mysql csv quotes

1118
推荐指数
24
解决办法
113万
查看次数

如何在bash循环列表中转义空格?

我有一个bash shell脚本循环遍历某个目录的所有子目录(但不是文件).问题是某些目录名称包含空格.

以下是我的测试目录的内容:

$ls -F test
Baltimore/  Cherry Hill/  Edison/  New York City/  Philadelphia/  cities.txt
Run Code Online (Sandbox Code Playgroud)

以及遍历目录的代码:

for f in `find test/* -type d`; do
  echo $f
done
Run Code Online (Sandbox Code Playgroud)

这是输出:

test/Baltimore
test/Cherry
Hill
test/Edison 
test/New
York
City
test/Philadelphia

Cherry Hill和纽约市被视为2或3个单独的条目.

我尝试引用文件名,如下所示:

for f in `find test/* -type d | sed -e 's/^/\"/' | sed -e 's/$/\"/'`; do
  echo $f
done
Run Code Online (Sandbox Code Playgroud)

但无济于事.

必须有一个简单的方法来做到这一点.


以下答案很棒.但为了使这更复杂 - 我并不总是想使用我的测试目录中列出的目录.有时我想将目录名称作为命令行参数传递.

我接受了查尔斯关于设置IFS的建议,并提出了以下建议:

dirlist="${@}"
(
  [[ -z "$dirlist" ]] && dirlist=`find test -mindepth 1 -type d` && IFS=$'\n'
  for …
Run Code Online (Sandbox Code Playgroud)

bash whitespace loops

117
推荐指数
5
解决办法
12万
查看次数

如何中断在take()上阻塞的BlockingQueue?

我有一个从a获取对象的类,BlockingQueue并通过take()在连续循环中调用来处理它们.在某些时候,我知道不会有更多的对象被添加到队列中.如何中断该take()方法以阻止其阻塞?

这是处理对象的类:

public class MyObjHandler implements Runnable {

  private final BlockingQueue<MyObj> queue;

  public class MyObjHandler(BlockingQueue queue) {
    this.queue = queue;
  }

  public void run() {
    try {
      while (true) {
        MyObj obj = queue.take();
        // process obj here
        // ...
      }
    } catch (InterruptedException e) {
      Thread.currentThread().interrupt();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是使用此类处理对象的方法:

public void testHandler() {

  BlockingQueue<MyObj> queue = new ArrayBlockingQueue<MyObj>(100);  

  MyObjectHandler  handler = new MyObjectHandler(queue);
  new Thread(handler).start();

  // get objects for handler to process …
Run Code Online (Sandbox Code Playgroud)

java concurrency interrupt blocking

81
推荐指数
3
解决办法
4万
查看次数

从cygwin连接到mysql

我可以从DOS提示符下成功连接到MySQL,但是当我尝试从cygwin连接时,它只是挂起.

$/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

怎么了?

mysql cygwin

56
推荐指数
5
解决办法
4万
查看次数

Windows开发环境值得花费吗?

我最近从Linux开发转向Windows开发.和我一样多的Linux爱好者,我不得不说 - C#是一种美丽的语言,Visual Studio非常棒,现在我已经给自己买了一个轨迹球,我的手腕已经不再使用鼠标了.

但有一件事我无法过去:成本.Windows 7,Visual Studio,SQL Server,Expression Blend,ViEmu,Telerik,MSDN - 我们为项目的每个开发人员讲了数千个!你肯定会得到一些钱 - 我的问题是,它值得吗?[并非每个开发人员都需要上述所有工具 - 但您是否听说过任何人在没有Visual Studio的情况下编写C#代码?我已经在Linux上从事过相当大的软件项目而无需为任何开发工具付费.

很明显,如果你已经是一个Windows商店,那么重新培训你所有的开发者都没有用.如果您正在寻找开发Windows桌面应用程序,那么您无法在Linux中执行此操作.但是,如果您正在开始一个新的Web应用程序项目,并且可以雇用您想要的任何语言专家的开发人员,您是否仍会选择Windows作为您的开发平台,尽管成本高昂?如果是,为什么?


更新:我不打算开始任何争论.我从答案/评论中获得了一些有价值的见解:

  1. 在Windows中设置开发环境的成本不一定非常高.
  2. 与开发人员本身的成本相比,开发环境的成本实际上只是一滴水.(但这对小型创业公司或自由程序员没有帮助).

c# linux windows development-environment

49
推荐指数
3
解决办法
5910
查看次数

如何测试DataSet是否为空?

我正在修改使用以下内容执行查询的其他人的代码:

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);
Run Code Online (Sandbox Code Playgroud)

如何判断DataSet是否为空(即没有返回结果)?

c# ado.net dataset

47
推荐指数
5
解决办法
18万
查看次数

如何从jar文件中获取方法签名?

我有一个第三方jar文件,它只是部分API的javadocs.有没有办法对jar文件进行反向工程以获得类和方法的完整列表?

java jar reverse-engineering method-signature

45
推荐指数
3
解决办法
4万
查看次数

在哪里关闭java PreparedStatements和ResultSet?

考虑一下代码:

PreparedStatement ps = null;
ResultSet rs = null;
try {
  ps = conn.createStatement(myQueryString);
  rs = ps.executeQuery();
  // process the results...
} catch (java.sql.SQLException e) {
  log.error("an error!", e);
  throw new MyAppException("I'm sorry. Your query did not work.");
} finally {
  ps.close();
  rs.close();
}
Run Code Online (Sandbox Code Playgroud)

上面没有编译,因为都PreparedStatement.close()ResultSet.close()抛出java.sql.SQLException.那么我要在finally子句中添加一个try/catch块吗?或者将close语句移动到try子句中?或者只是不打扰打电话?

java jdbc resource-management

35
推荐指数
7
解决办法
9万
查看次数

如何在operator ==方法中检查null?

考虑以下课程:

public class Code : IEquatable<Code> 
{
    public string Value { get; set; }

    public override bool Equals(object obj)
    {
         return Equals(obj as Code);
    }

    public override bool Equals(Code code)
    {
         if (code == null) return false;
         return this.Value == code.Value;
    }

    public static bool operator ==(Code a, Code b)
    {
         if (a == null) return b == null;
         return a.Equals(b);
    }

    public static bool operator !=(Code a, Code b)
    {
         if (a == null) return b!= null;
         return !a.Equals(b); …
Run Code Online (Sandbox Code Playgroud)

c# c#-4.0

24
推荐指数
2
解决办法
4848
查看次数

为什么一个类显式地实现IDisposable而不是隐式?

我使用的是FtpWebResponse类,但没有看到Dispose方法. 事实证明,该类实现了IDisposable,但是明确地这样做,因此在调用Dispose之前必须先将实例强​​制转换为IDisposable:

// response is an instance of FtpWebResposne
((IDisposable) response).Dispose();
Run Code Online (Sandbox Code Playgroud)

为什么像这样的类的设计者会选择明确地实现IDisposable?正如Anthony Pegram所说,以这种方式做事掩盖了这样一个事实,即对象应该为每次使用课程时都没有查阅文档的普通开发人员处理.

c# idisposable explicit-interface

17
推荐指数
2
解决办法
2269
查看次数