转换空格分隔的txt文件为csv文件的shell命令

而且空格数并不确定

cat test.txt | sed 's/\t/,/g;s/[[:space:]]//g' >test.csv

PS:有个简洁的方法

cat test.txt | tr "[[:space:]]" "\t" >test.csv

注:cat test.txt | tr "old value" "new value" >test.csv

sed详解

sed 执行过程为:
1. 从输入读取一行数据存入临时缓冲区,此缓冲区称为模式空间(pattern space)
2. 按指定的 sed 编辑命令处理缓冲区中的内容
3. 把模式空间的内容送往屏幕并将这行内容从模式空间中删除
4. 读取下面一行。重复上面的过程直到全部处理结束。
sed  p操作
显示文件的全部内容
$sed -n p test.sh
显示文件第五行的内容
$sed  -n  5p  test.sh
显示文件最后一行的内容
$sed  -n  '$p'  test.sh
显示文件从第3行开始到第10行的内容
$sed  -n 3,10p  test.sh
显示文件第3行以及之后10行的内容
$sed  -n 3,+10p  test.sh
显示文件从第3行开始到最后一行的内容
$sed  -n '3,$p'  test.sh
显示文件从第3行开始步长为5的行的内容
$sed  -n 3~5p  test.sh
显示文件中所有包含core的行
$sed  -n  /core/p  test.sh
显示文件中所有不包含core的行
$sed  -n  '/core/!p'  test.sh
显示文件中从第3行开始到其后第一次出现core的内容
$sed  -n  3,/core/p  test.sh
UERNAME="yw"
PASSWORD="123456"
DBNAME="monitor_core"
显示文件中从第一次出现core的行开始到最后一行的内容
$sed  -n  '/core/,$p'  test.sh
显示文件中从第一次出现core开始的行到第一次出现eroc开始的行
$sed  -n  /^core/,/^eroc/p  test.sh
============================================================
sed替换命令
在每一个输入行中,将第一个出现的windows替换为linux
$ sed  's/windows/linux/'  test.sh
在每一个输入行中,将第一个出现的windows替换为linux,打印替换结果的行
$ sed  -n  's/windows/linux/p'  test.sh
在每一个输入行中,将出现的每一个windows替换为linux
$ sed  's/windows/linux/g'  test.sh
在每一个输入行中,将出现的每一个windows替换为linux,打印替换结果的行
$ sed  -n  's/windows/linux/g'  test.sh
在每一个输入行中,将出现的每一个unix替换为unix/linux(&表示匹配到的字符串)
$ sed  -e  's/unix/&\linux/g'  test.sh
将所有连续出现的c都压缩成单个的c
$ sed  's/cc*/c/g'  test.sh
删除首行的一个空格
$  sed   's/  //'  test.sh
删除每一行前导的连续“空白字符”
$  sed  's/^[ \t]*//'  test.sh
删除以句点结尾的行中末尾的句点
$ sed  's/\.$//g'  test.sh
删除每行的第一个字符
$ sed  's/.//'  test.sh
删除每行结尾的所有空格
$ sed  's/  *$//'  test.sh
在文件的每一行开始处插入两个空格
$ sed  's/^/  /'  test.sh
在每一行开头加上一个尖括号和空格
$ sed  's/^/> /'  test.sh
将每一行开头处的尖括号和空格删除
$ sed  's/^> //'  test.sh
删除路径前缀
$ sed  's/.*\///'  test.sh
$ ls  -d  /usr/share/man/man1  |sed  's/.*\///'
过滤掉所有的标点符号(.,?!)
$ sed  's/\.//g'  -e  's/\,//g'  -e  's/\?//g'  -e  's/\!//g'  test.sh
注:无论什么字符,紧跟着s命令的都被认为是分隔符
$ sed  's#/some/path/old#/some/path/new#g'  test.sh
       
 替换的速度优化:可以考虑在替换命令(“s/…/…/”)前面加上地址表达式来提高速度。
sed  's/foo/bar/g'  test.sh                     //标准替换命令
sed  '/foo/  s/foo/bar/g'  test.sh         //速度更快
sed  '/foo/  s//bar/g'  test.sh               //简写形式
若只替换第一次匹配foo的行,可以使用q短路后续行的执行。
sed  '/foo/{s/foo/bar/:q}'  test.sh
==================================================================
其他命令使用举例
删除所有空白行
$ sed  '/^$/d'  test.sh
$ sed  '/./!d'  test.sh
删除文件顶部的所有空行
$ sed  '/./,$!d'  test.sh
从输入的开头一直删除到第一个空行
$ sed  '1,/^$/d'  test.sh
删除所有的偶数行,与sed -n '1~2p' test.sh等效
$ sed  'n;d'  test.sh
删除掉所有包含'GUI'的行
$ sed  '/GUI/d'  test.sh
将所有“GUI”都删除掉,并保持剩余部分的完整性
$ sed  's/GUI//g'  test.sh
在每一行后面增加一个空行
$  sed  G  test.sh
在匹配'regex'的行之后插入一个空行
$ sed  '/regex/G'  test.sh
将test.sh中从case开始的行到esac结束的行写到文件case-block
$ sed  '/^case/,/^esac/w  case-block '  test.sh
在test.sh末尾($)追加新行
(反斜杠\是必需的,它表示将插入一个回车符。在任何需要输入回车的地方都必须使用反斜杠)
$ sed  '$a\
>newline1\
>newline2\
>newline3'  test.sh
在匹配'regex'的行之后追加新行
$  sed  '/regex/a\
>newline1\
>newline2\
>newline3'  test.sh
注:在i\和c\操作的格式与上面的a\操作的格式相同

shell命令实现txt文件转换为csv文件相关推荐

  1. Python之EXCEL文件转换为CSV文件

    Python之EXCEL文件转换为CSV文件@TOC 依赖库:pandas.pathlib.os,Python版本3.9.7 手头有10000+的excel文件,每个文件只有一个sheet,10000 ...

  2. java代码实现excel文件转换为csv文件

    java代码实现excel文件转换为csv文件 pom文件导入 <dependencies><dependency><groupId>org.springframe ...

  3. psv文件转换为csv文件

    最近在获取physionet.org网站的数据时,发现是psv文件存储的,虽然网站提供了基于os.argv数据流形式的处理方式,但是由于tensorflow的环境太难配置了,懒得配,所以写了个代码,进 ...

  4. 数据集处理----将.dat文件转换为.csv文件

    在训练数据集时,里面的数据通常以.data格式存储,在将数据集中的字符串转化为浮点型时出现了以下错误: could not convert string to float: 'temp' 上网查了写资 ...

  5. ssconvert 安装_使用Gnumeric ssconvert将ods文件转换为csv文件时替换或忽略换行符

    这是你的问题: ssconvert -O' separator =; quoting-mode = never'"f.ods""f.txt"; 通过阻止ssco ...

  6. python将json文件转换为csv文件

    需要通过引入json和csv库,然后根据以下步骤进行操作: 一.读取json文件.创建csv文件 二.提出json中表头和表的内容 三.使用csv.reader(读取器)写入csv内容 四.关闭jso ...

  7. 如何使用python把json文件转换为csv文件

    文章目录 了解json整体格式 转换格式 提取key和value 使用pandas写入csv 了解json整体格式 这里有一段json格式的文件,存着全球陆地和海洋的每年异常气温(这里只选了一部分): ...

  8. 将.dat文件转换为csv文件

    程序很简单,下面贴代码: #coding=utf-8 import pandas as pd import os path1= os.getcwd()+ '/20161201.dat'        ...

  9. linux用分割的csv文件读取,在Linux中将制表符分隔的文件转换为CSV的最快方法

    在Linux中将制表符分隔的文件转换为CSV的最快方法 我有一个制表符分隔的文件,其中包含超过2亿行. 在Linux中将其转换为CSV文件的最快方法是什么? 该文件的确包含多行标题信息,我需要将其删除 ...

  10. txt文件转csv文件乱码问题

    新建文本文件 这里我们新建一个记事本,注意里面的表格属性(列)之间要用英文的逗号隔开,现在我们把它保存,转换为一个csv文件 转换为csv文件 直接重命名文件扩展名即可,我们打开csv文件,发现是乱码 ...

最新文章

  1. opencv python 图像去噪
  2. linux下打开配置文件命令_Linux下用户权限相关命令
  3. TCP/IP 总结一
  4. python——输入输出
  5. Angularjs1.x 中的 service,factory,provider,constant,value
  6. Centos 7 搭建nginx 服务 使得别人能够访问自己的个人网站
  7. Navigation bar - remove recent object
  8. python计算机视觉编程调试问题
  9. SetFormFullScreen()窗体全屏显示
  10. 服务器系统server 2008,windows server 2008 R2 操作系统
  11. 【视频特辑】提效神器,如何用Quick BI高效配置员工的用数权限
  12. ffmpeg开发指南(使用 libavformat 和 libavcodec)
  13. 使用Linux创建自己的视频流服务器
  14. c语言结果输出10遍,C语言 如何实现输出这样一系列输出结果
  15. 不好的女人只能消耗你,好的女人不仅可以给你一个家和孩子
  16. 复旦NLP组:大厂模型的鲁棒性进步了吗?
  17. python求解重叠区域线段覆盖总长度
  18. 2021年第十八届五一数学建模竞赛题目 C题 数据驱动的异常检测与预警问题 解题论文完整版
  19. PR视频旋转处理方法
  20. cv个人计算机SCI英文简历模板,个人英文简历模板

热门文章

  1. 【学习OpenCV4】聊聊图像格式
  2. ES安装以及基本应用
  3. ZKFinger Live20R 版对接java - B/S(ZKFinger SDK 5.0.0.32 )
  4. vue时间过滤器(moment)
  5. 经典面试问题回答思路
  6. P2825 [HEOI2016/TJOI2016]游戏
  7. 集合论第一章 3 集合论的公式和条件
  8. 前端工程师行业现状怎么样?前景如何?
  9. 单个像素代表的实际物理尺寸
  10. 传输层协议和应用层协议及它们之间的关系(端口)