一千萬個為什麽

搜索

在bash中格式化stdin

我有一個來自另一個程序的多行字符串,我想將其轉換為SQL命令。我希望printf可以幫助我,但它似乎不起作用:

echo -e '1\n2\n3'|printf 'SELECT %s INTO MyTable'

我希望看到:

SELECT '1
2
3' INTO MyTable

但我得到了:

SELECT  INTO MyTable

如何讓%s讀取標準輸入?

最佳答案

使用 xargsstdin 轉換為程序參數:

echo -n  -e '1\n2\n3' |xargs -0  printf 'SELECT %s INTO MyTable'

轉載註明原文: 在bash中格式化stdin