首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用oracle的shell脚本从csv中删除空行

使用oracle的shell脚本从csv中删除空行
EN

Stack Overflow用户
提问于 2016-02-16 05:57:08
回答 4查看 5.1K关注 0票数 0

Hi正在使用下面的shell脚本从oracle数据库创建csv

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export PATH=$PATH:$ORACLE_HOME/bin
sqlplus -s user1/user1<<!
Spool on
set heading off
SET FEEDBACK OFF
set wrap off
set colsep ,
SET LINESIZE 200
set trims on
Spool /home/ist/username.csv
select 'username','userid' from dual;
select username,userid from users;
Spool off
EXIT
!

我得到了如下输出

如您所见,在第一行和第三行都有空行,但希望文件没有空行。任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-16 08:10:53

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET PAGESIZE 0

命令以避免空行。这也会取消列标题,因此可以删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET HEADING OFF

命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SPOOL on

没有意义,因为它在名为on.lst的文件中启动假脱机。所以也删除这个命令。

如果要显示具有列名的标题,可以尝试以下设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set HEADING ON
SET FEEDBACK OFF
set WRAP OFF
set COLSEP ,
SET LINESIZE 32767
set NEWPAGE none
set UNDERLINE OFF
set TRIMSPOOL ON
set TRIMOUT ON
set PAGESIZE 50000

标题是默认的,所以你不能设置它。它允许在select启动时显示列名。underline off会取消“--”列名与select数据之间的行。pages 50000将页面大小设置为其最大值(Oracle11.2)。linesize 32767将行大小设置为其最大值(Oracle11.2)。newpage none是必要的,以抑制这个空行在一个页面的开头,这是您的帖子的主要关注事项。所有这些都可以在加命令参考中找到。

termout off参数只取消使用@或@命令执行的脚本创建的输出。它不会被SQL*plus控制台中输入的命令取消。如果您使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlplus user/passw@connect <<!
...
!

您可以使用shell语言的这里文档语法来模拟交互输入。因此,将sql命令放在脚本中,例如script.sql,然后执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlplus user/passw@connect @script.sql

然后termout off将抑制终端输出。

而不是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
colsep ,
select username,userid
...

它返回的内容如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user1                 ,          14
nextuser              ,         236
myuser                ,          11
...

您可以使用保持COLSEP不变并执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select username||','||userid
...

以获得以下输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user1,14
nextuser,236
myuser,11
...

也许这是有用的https://dba.stackexchange.com/a/64620/2047

票数 2
EN

Stack Overflow用户

发布于 2016-02-16 06:19:05

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set trimspool on

这个会对你有用的

票数 0
EN

Stack Overflow用户

发布于 2016-02-16 07:05:57

把这个写在你的剧本上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i '/^\s*$/d'/home/ist/username.csv
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35434513

复制
相关文章
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
6.2K0
python 删除文件中的空行
res = [x for x in res if x.split()] #将空行从 res 中去掉
全栈程序员站长
2022/09/02
3.5K0
shell脚本:遍历删除
windows上测试可以安装Gitlinux中,准备删除文件的脚本deleteFile.sh,picture.txt保存待删除文件的文件路径,picture文件夹下面有三张待删除图片a/b/c.jpg
chenchenchen
2020/05/26
3.1K0
shell 删除用户 脚本
image.png image.png image.png image.png image.png image.png image.png image.png
用户5760343
2022/05/18
1.5K0
shell 删除用户 脚本
Excel技巧:快速删除表中的空行
有时候,表中可能存在空行,如果我们需要删除表中的这些空行,如何快速操作呢?特别是包含大量数据的大表。为演示起见,下面的示例表数据较少。
fanjy
2023/02/24
2.8K0
Excel技巧:快速删除表中的空行
Shell-alias在Shell脚本中的使用
众所周知,shell脚本使用的是非交互式方式,在非交互式模式下alias扩展功能默认是关闭的,此时虽然可以定义alias别名,但是shell不会将alias别名扩展成对应的命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名的命令,则shell会找不到指定的命令。
小小工匠
2021/08/16
2.3K0
shell脚本添加用户删除用户删除文件的脚本实现
#/bin/bash # DEBUG=0 ADD=0 DEL=0 RM=0 while [ $# -gt 0 ] do case $1 in -v|-verbose) DEBUG=1 shift ;; -h|--help) #帮助文档 echo "`basename $0` --add LIST --del LIST -h|--help --rm LIST" exit 0 ;; --add
艳艳代码杂货店
2021/10/30
1.6K0
从mongoDB中定时导出数据shell脚本
目标:编写一个shell脚本,以便能够将mongoDb中的数据导出成为csv格式的文件。要求:1. 为了避免导出巨量数据,仅需要过滤出当月数据和上个月的数据即可。2. 由于当天的数据是不完整的,所以需要排除当天的数据以下是一个例子,将代码保存为.sh文件后使用 chmod +x 将该脚本设置为可执行,然后使用crontab命令将脚本加到定时任务当中
用户1503405
2021/10/31
1.4K0
大坑记录 - shell脚本删除操作
背景 jenkins执行去执行shell命令,其中引用了一些jenkins的变量,如${WORKSPACE}这种,因为每次执行jenkins比较慢,于是想复制脚本出来想本地调试一下,直接复制了脚本过来执行,结果又这么一句 rm -rf ${WORKSPACE}/* 用root去执行,结果就崩盘了,发现删除了系统文件和目录,当终止的时候,已经来不及了 分析 由于${WORKSPACE}不存在,就是空了的,所以命令基本上就是rm -rf /* 然后就爆炸了,哎,只能找运维帮忙修复了的 后记 1. 权限控制,尽量
千往
2018/03/28
1.8K0
shell脚本中的数组常见使用方式
shell中数组的定义是使用 小括号来表示的,其中数组元素之间用空格作为分隔,比如:
qsjs
2021/11/24
3.1K0
Excel去除空行的各种方法_批量删除所有空行
大家好,又见面了,我是你们的朋友全栈君。 本文转载至:https://baijiahao.baidu.com/s?id=1590204478648348952&wfr=spider&for=pc,
全栈程序员站长
2022/09/20
5.7K0
Excel去除空行的各种方法_批量删除所有空行
shell 脚本中 if 各种条件判断的使用
1. if 在shell中语法格式1.1 if-elif-else语法格式if [ command ];thenelif [ command ];thenelsefi1.2 if-else语法格式if [ command ];thenelsefi1.3 if语法格式if [ command ];thenfi2. 字符串运算符 =检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。 !=检测两个字符串是否不相等,不相等返回 true。[ $a != $b ] 返回 true。
特特
2022/12/08
3.8K0
通过shell脚本监控oracle session
最近数据库碰到了连接紧张的问题,想通过一个脚本对数据库的session情况一目了然。 以下是自己写的脚本。实现的效果如下。 对session的总体情况,那些program主要在占用,每个用户所拥有的session(active,inactive,killed,sniped...)都能够一目了然。 STATUS CNT -------- ---------- KILLED 553 SNIPED 2028 ACTIVE 44 INACTIV
jeanron100
2018/03/13
1.4K0
shell脚本中if基本使用方法
if, for, while几乎是所有编程语言的关键字,在Shell编程中也不例外,其中if是使用频率最高的,由于Shell编程中不存在对象(Object)的概念,因此在if的比较判断中主要是对字符串、数字的值进行比较判断的:
IT工作者
2022/05/05
1.1K0
关于Oracle导出到csv文件的脚本-spool方法
Oracle就是这么牛,从外部文件导入到Oracle中有N种方法,想把Oracle的数据导出成通用文件的方法却不多,梳理下来大致有三种办法:
python与大数据分析
2022/03/11
3K0
关于Oracle导出到csv文件的脚本-spool方法
shell脚本export变量只限脚本内么_shell脚本调用oracle存储过程
用sh运行脚本后,在当前shell利用命令env查看环境变量,但是却没有fdu变量,难道是因为我的export语句没有生效?
全栈程序员站长
2022/10/04
1.4K0
如何使用 Python 只删除 csv 中的一行?
我们将使用 drop() 方法从任何 csv 文件中删除该行。在本教程中,我们将说明三个示例,使用相同的方法从 csv 文件中删除行。在本教程结束时,您将熟悉该概念,并能够从任何 csv 文件中删除该行。
很酷的站长
2023/08/11
8310
如何使用 Python 只删除 csv 中的一行?
Oracle RMAN删除归档日志脚本
Oracle 开启归档模式后,会一直不停的产生归档日志,如果不定时删除,迟早会撑爆磁盘空间,所以就需要布置定时删除归档日志的脚本!
Lucifer三思而后行
2021/09/23
1.5K0
oracle数据同步到Greenplum的shell脚本
此脚本在运行时会先把oracle数据按照指定的分隔符下载到磁盘的目录下,再用替换脚本替换需要的分隔符和ascii字符,具体的替换方法请查看fileAsciiReplaceScriptAll.sh脚本
小徐
2019/05/14
1.4K0
oracle数据同步到Greenplum的shell脚本
oracle数据同步到Greenplum的shell脚本
此脚本在运行时会先把oracle数据按照指定的分隔符下载到磁盘的目录下,再用替换脚本替换需要的分隔符和ascii字符,具体的替换方法请查看fileAsciiReplaceScriptAll.sh脚本
小徐
2019/08/05
1.3K0

相似问题

如何在shell脚本中删除分隔csv文件中的空行

31

Unix Shell脚本:从行中删除重复的忽略空行

11

从Oracle DB表中删除记录的Shell脚本

21

从csv c#中删除空行

20

使用python 3.3从csv文件中删除空行

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文