微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – bash如何将循环输出打印成一行?

我希望有人可以帮助我,

如何将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

echo的-n选项会抑制换行符.

您可以使用echo $(< file.csv)在一行中打印整个文件. 但这可能更适合您的需求:

awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file

这将打印每一行后跟一个空格.只要行号可被1000整除,它就会打印换行符;也就是说,每隔1000行之后.

补充:要打印括号内的每一行,您可以使用

awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file | sed 's/.*/(&)/'

sed命令搜索任何字符(.*)并用open-paren替换它们,它找到的字符(即整行)和close-paren.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐