将多行文件转换为一行

一、需求:

把这些数据库文件转换成一行,然后用scp -r 一次性作拷贝。

二、实例

[[email protected] ~]# cat /tmp/1
ga_10122
ga_10589
ga_11053
ga_11238
ga_11559
ga_11944
ga_12193
ga_13542
ga_35179
ga_36013
ga_36063
ga_36575
ga_36737
ga_36926
ga_37962
ga_39596
ga_39599
ga_39603
ga_39604
ga_39605
ga_39608
ga_39609
ga_39610
ga_39614
ga_39618
ga_39619
ga_39622
ga_39625
ga_39626
ga_39630
ga_39633
ga_39636
ga_39639
ga_39640
ga_39642
ga_39645
ga_39648
ga_39652
ga_39654
ga_39657
ga_39668
ga_39675
ga_39687
ga_39690
ga_39691
ga_39693
ga_39695
ga_39697
ga_39702
ga_39703
ga_39704
ga_39708
ga_39715
ga_39717
ga_39724
ga_39725
ga_39727
ga_39728
ga_39730
ga_39732
ga_39738
ga_39741
ga_39743
ga_39753
ga_39757
ga_39761
ga_39765

三、解决有三种

1、采用awk

[[email protected] ~]# awk BEGIN{RS=EOF}‘{gsub(/\n/," ");print}‘ /tmp/1
ga_10122 ga_10589 ga_11053 ga_11238 ga_11559 ga_11944 ga_12193 ga_13542 ga_35179 ga_36013 ga_36063 ga_36575 ga_36737 ga_36926 ga_37962 ga_39596 ga_39599 ga_39603 ga_39604 ga_39605 ga_39608 ga_39609 ga_39610 ga_39614 ga_39618 ga_39619 ga_39622 ga_39625 ga_39626 ga_39630 ga_39633 ga_39636 ga_39639 ga_39640 ga_39642 ga_39645 ga_39648 ga_39652 ga_39654 ga_39657 ga_39668 ga_39675 ga_39687 ga_39690 ga_39691 ga_39693 ga_39695 ga_39697 ga_39702 ga_39703 ga_39704 ga_39708 ga_39715 ga_39717 ga_39724 ga_39725 ga_39727 ga_39728 ga_39730 ga_39732 ga_39738 ga_39741 ga_39743 ga_39753 ga_39757 ga_39761 ga_39765

awk默认将记录分隔符(record separator即RS)设置为\n,此行代码将RS设置为EOF(文件结束),也就是把文件视为一个记录,然后通过gsub函数将\n替换成空格,最后输出。

2、采用sed

[[email protected] ~]# sed ‘:a ; N;s/\n/ / ; t a ; ‘ /tmp/1
ga_10122 ga_10589 ga_11053 ga_11238 ga_11559 ga_11944 ga_12193 ga_13542 ga_35179 ga_36013 ga_36063 ga_36575 ga_36737 ga_36926 ga_37962 ga_39596 ga_39599 ga_39603 ga_39604 ga_39605 ga_39608 ga_39609 ga_39610 ga_39614 ga_39618 ga_39619 ga_39622 ga_39625 ga_39626 ga_39630 ga_39633 ga_39636 ga_39639 ga_39640 ga_39642 ga_39645 ga_39648 ga_39652 ga_39654 ga_39657 ga_39668 ga_39675 ga_39687 ga_39690 ga_39691 ga_39693 ga_39695 ga_39697 ga_39702 ga_39703 ga_39704 ga_39708 ga_39715 ga_39717 ga_39724 ga_39725 ga_39727 ga_39728 ga_39730 ga_39732 ga_39738 ga_39741 ga_39743 ga_39753 ga_39757 ga_39761 ga_39765

说明:sed默认只按行处理,N可以让其读入下一行,再对\n进行替换,这样就可以将两行并做一行。但是怎么将所有行并作一行呢?可以采用sed的跳转功能。:a 在代码开始处设置一个标记a,在代码执行到结尾处时利用跳转命令t a重新跳转到标号a处,重新执行代码,这样就可以递归的将所有行合并成一行。

3、cat file | xargs

[[email protected] ~]# cat /tmp/1 | xargs
ga_10122 ga_10589 ga_11053 ga_11238 ga_11559 ga_11944 ga_12193 ga_13542 ga_35179 ga_36013 ga_36063 ga_36575 ga_36737 ga_36926 ga_37962 ga_39596 ga_39599 ga_39603 ga_39604 ga_39605 ga_39608 ga_39609 ga_39610 ga_39614 ga_39618 ga_39619 ga_39622 ga_39625 ga_39626 ga_39630 ga_39633 ga_39636 ga_39639 ga_39640 ga_39642 ga_39645 ga_39648 ga_39652 ga_39654 ga_39657 ga_39668 ga_39675 ga_39687 ga_39690 ga_39691 ga_39693 ga_39695 ga_39697 ga_39702 ga_39703 ga_39704 ga_39708 ga_39715 ga_39717 ga_39724 ga_39725 ga_39727 ga_39728 ga_39730 ga_39732 ga_39738 ga_39741 ga_39743 ga_39753 ga_39757 ga_39761 ga_39765
时间: 2024-10-06 00:30:56

将多行文件转换为一行的相关文章

优秀的命令行文件传输程序(转)

虽然普通用户对图形用户界面情有独钟,但命令行界面仍然扮演着一个重要的角色.命令行界面提供了一种方式让用户以文本的形式向程序发出指令,用户能完全控制系统,不想要担心资源的有限,能更快的操作.但命令行也需要恰当的工具才会更强大. 这里介绍的是命令行文件传输程序,它们支持多种不同的协议,不仅仅限于 FTP,提供了类 shell 的命令语法,非常适合写脚本. 这些程序包括:LFTP.NcFTP.Yafc 和 cURL http://news.cnblogs.com/n/502558/

设置LISTControl控件某一行的背景和文字颜色

定义宏 用listcontrol的SetItemData设置某一行的属性,通过自定义属性标识实现. 自定义某行内容颜色属性: #define COLOR_DEFAULT 0 //默认颜色 #define COLOR_RED 1 //红色 #define COLOR_BLUE 2 //蓝色 定义消息 调用BOOL SetItemData(In int nItem, In DWORD_PTR dwData); 其中nItem为某行位置,下标以0开始,dwData可为自定义颜色属性. 然后在LISTC

gePlugin封装成winform控件,一行代码即可加载。

将插件直接封装为控件,大大简化了GEPlugin的使用.多数常用功能也已经封装完毕,其他功能全部开放接口,直接调用即可. 1. GepluginControl控件传送门: 链接:https://pan.baidu.com/s/1WC5FodF2GTk7Jj5EUOSWqQ 提取码:fw7l 下载的是源码,找到debug目录,将debug目录下的所有文件全部拷贝到你创建的项目的debug目录下,或者release目录. 文件目录: 将GEControl.dll添加到引用中,并且添加到工具箱中.不知

ECSTORE日期时间控件转换为时间戳的方法

如果你在后台使用<{input type=”time” name=”time”}>的话,后台获取到的表单数据为: 21 ["_DTYPE_TIME"]=> 22 array(1) { 23 [0]=> 24 string(4) "time" 25 } 26 ["time"]=> 27 string(9) "2014-11-7" 28 ["_DTIME_"]=> 29 ar

(转)SQL查询案例:多行转换为一行

原文:http://www.cnblogs.com/sammon/archive/2012/05/10/2494362.html 测试表与测试数据 CREATE TABLE TestTitle ( name   VARCHAR(10), titleVARCHAR(10) ); INSERT INTO TestTitle VALUES ('张三', '程序员'); INSERT INTO TestTitle VALUES ('张三', '系统管理员'); INSERT INTO TestTitle

HDFS命令行文件操作

Hadoop文件操作命令形式为 hadoop fs -cmd <args> 说明:cmd是具体的文件操作命令,<args>是一组数目可变的参数. Hadoop最常用的文件操作命令,包括添加文件和目录.获取文件.删除文件等.1 添加文件和目录 HDFS有一个默认工作目录/usr/$USER,其中$USER是你的登录用户名,作者的用户名是root.该目录不能自动创建,需要执行mkdir命令创建. hadoop fs -mkdir  /usr/root 使用Hadoop的命令put将本地

windows程序查看可以行文件依赖库

通常在做windows下开发程序,发布的时候需要同时打包一些依赖库:我们可以通过工具直接查看需要发布的程序依赖的程序,这样可以方便快捷的打包程序 这里我们推荐使用:dependencywalker 下载地址:http://www.dependencywalker.com/ 界面如下:

logstash multiline 把多行文件处理为一个 event

需求 多个文本文件需要存到 ES 中去. 每一个文件存放为一个 doc. 每一个文件都是多行的,行数不定,且没有固定的内容格式. update time: Mon Jun 25 11:36:48 CST 2012 package name: AD-4.0-M6000-LiDuan(2012-03-16).ssu SANGFOR-M6000-AD-4.0.0 BUILD mother_1.0 update time: Fri Mar 25 11:02:57 CST 2016 package nam

atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系

1. 服务器控件是可被服务器理解的标签.有三种类型的服务器控件: 1 1.1. HTML 服务器控件 - 传统的 HTML 标签 1 1.2. Web 服务器控件 - 新的 ASP.NET 标签 1 1.3. Validation 服务器控件 - 用于输入验证 1 2. HTML 服务器控件 1 3. - Web 服务器控件 2 4. 标准服务器控件可分为以下6种类型: 2 4.1. (1)标准控件:主要是指传统的Web窗体控件,例如TextBox.Button.Panel等控件.它们有一组标准