Chinaunix

标题: sql 构造 [打印本页]

作者: wuxiaobo_2009    时间: 2014-09-05 12:02
标题: sql 构造
如题:

源文件 :




目的格式:

a.cons_name like '%鲜花% ' or a.cons_name like '%肉类%' or
以此类推:每行两个内容 

vim 能否实现。 windows 环境

不行请帮忙给一个 脚本呢 。谢谢
作者: dn833    时间: 2014-09-05 13:20
  1. sed -r 'N;{s/(.*)\n(.*)/a.cons_name like '\''%\1%'\'' or a.cons_name like '\''%\2%'\'' or/}'
复制代码

作者: Shell_HAT    时间: 2014-09-05 14:03
test.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f %%i in (a.txt) do (
  4.     set /a n+=1
  5.     set /a m=n%%2
  6.     if !m! equ 0 (
  7.         echo a.cons_name like '%%%%i%%' or
  8.     ) else (
  9.         set /p =a.cons_name like '%%%%i%%' or < nul
  10.     )
  11. ))>b.txt
复制代码

作者: bulletmarquis    时间: 2014-09-05 15:23
本帖最后由 bulletmarquis 于 2014-09-05 15:23 编辑

回复 1# wuxiaobo_2009


cat a

鲜花
肉类
海鲜

萝卜
白菜


cat a|awk '{printf $0" ";getline}1'|sed "s| |% ' or a.cons_name like '%|;s|^|a.cons_name like '%|;s|$|%' or|"

a.cons_name like '%鲜花% ' or a.cons_name like '%肉类%' or
a.cons_name like '%海鲜% ' or a.cons_name like '%蛋%' or
a.cons_name like '%萝卜% ' or a.cons_name like '%白菜%' or





作者: 李满满    时间: 2014-09-06 12:11
学生党:飘过~
[yhsafe@shell ~]$ sed 'N;$!s/\(.*\)\n\(.*\)/a.cons_name like '\''%\1%'\'' or a.cons_name like '\''%\2'\'%' or /' file.txt
a.cons_name like '%鲜花%' or a.cons_name like '%肉类'% or
a.cons_name like '%海鲜%' or a.cons_name like '%鸡蛋'% or
a.cons_name like '%萝卜%' or a.cons_name like '%白菜'% or
作者: zhleiling    时间: 2014-09-09 11:42
不知道你用的是什么数据库,如果支持的话,建议使用类似regexp_like的语法。是不是有点跑题
作者: zxy877298415    时间: 2014-09-09 17:24
回复 1# wuxiaobo_2009
awk '{a="a.cons_name like \047%" $0 "%\047"; getline; b="or a.cons_name like \047%" $0 "%\047 or"; print a,b; }' file


   
作者: yestreenstars    时间: 2014-09-09 17:31
回复 3# Shell_HAT

版主的bat功力也如此强劲!佩服佩服!
   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2