我希望有人能帮我解决这个问题,
如何将 for 循环的输出打印成单行?
for i in `cat file.csv`
do
echo $i
done
我在这里试图实现的是从 file.csv 中获取数字列表以生成 mysql 批量删除语句。
delete FROM Recordtable WHERE DataID IN ('93041', '93031' ...etc);
这里的目标是将每 1000 条记录加载到一个删除语句中
非常感谢您的帮助
最佳答案
如果你想要循环,你可以使用
for i in ($<file.csv)
do
echo -n "$i "
done
-n
echo
的选项禁止换行。
您可以使用 echo $(<file.csv)
在一行中打印整个 文件.
但这可能更适合您的需求:
awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file
这将打印每行后跟一个空格。只要行号可以被 1000 整除,它就会打印一个换行符;也就是说,在每第 1000 行之后。
补充:要打印括号内的每一行,您可以使用
awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file | sed 's/.*/(&)/'
sed
命令搜索任何字符 ( .*
) 并将它们替换为左括号、找到的字符(即整行)和右括号。
关于mysql - bash 如何将 for 循环输出打印成一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490573/