作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试从 CSV 数据生成 MySQL 文件
90927744|1356976814398|0|1356976815339|18563182571|18563182571|18568753009|18563574221
有没有一种方法可以使用 awk 或 sed 来生成如下的 mysql 插入语句
insert into table (id,value,status,starttime,endtime,number,phone,number) values (90927744,1356976814398,0,1356976815339,18563182571,18563182571,18568753009,18563574221);
谢谢
最佳答案
从您的输入中提取特定字段....
$echo "90927744|1356976814398|0|1356976815339|18563182571|18563182571|18568753009|18563574221" | awk -F "|" '{print $4}'
1356976815339
如果您在a.txt
中只有一行(请参阅下面的脚本以了解输入文件中的多行)
$cat a.txt | awk -F "|" '{print $4}'
所以输出你想要的查询--
$cat a.txt | awk -F "|" '{printf("insert into table (id,value,status,starttime,endtime,number,phone,number) values (%d, %d, %d, %d, %d, %d, %d, %d) \n", $1, $2, $3, $4, $5, $6, $7, $8)}'
如果您的文件有多行,请使用以下脚本(或根据您的需要进行调整)
while read line
do
echo "$line" | awk -F "|" ........
done < a.txt
关于linux - 将csv文件转换为mysql插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16535022/
我是一名优秀的程序员,十分优秀!