你只能使用sed做到这一点:
sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/$/)/' file.txt
如:
$ echo "1 2 3"|sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/$/)/'
Delete from ReportingDetail where ReportingDetailID IN (1,2,3)
编辑 - 为您的更新(即当你在不同线路上的数字),只是在前面加上你已经有什么:
awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file.txt | sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/,$/)/'
如:
$ echo -e "1\n2\n3"|awk '{ printf $0 " " } NR%1000 == 0 { print "" }'|sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/,$/)/'
Delete from ReportingDetail where ReportingDetailID IN (1,2,3)
你也可以做,如果没有这样的AWK:
$ echo -e "1\n2\n3\n4"|tr "\n" " "|sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/,$/)/'
Delete from ReportingDetail where ReportingDetailID IN (1,2,3,4)
注意我使用的回声只是为了测试,即这是它产生:
$ echo -e "1\n2\n3\n4"
1
2
3
4
+1好的问题声明,示例输入,预期输出和一些代码!祝你好运。 – shellter 2012-03-08 04:02:45