背景:最近同事遇到一个问题,那就是一不小心把一张表因为分号把where给隔断了,导致全表全给更新了,其别说前面的数据,先说今天上传的视频后缀啥的,都没了,但还好今天有上传日志,于是,得从日志里获取uuid和路径名,前端四台机,合并后,用grep -B 3进行了查找导出,并用grep -v进行去重,只依次留下两行uuid,pathAndSuffix ,为此,再用grep 分别把uuid和pathAndSuffix 分成两个文件,此时,就可以用paste进行行合并,从而实现了列序变行序。
功能说明:合并文件的列。
语 法:paste [-s][-d ][--help][--version][文件...]
补充说明:paste指令会把每个文件以列对列的方式,一列列地加以合并。
参 数:
-d或--delimiters= 用指定的间隔字符取代跳格字符。
-s或--serial 串列进行而非平行处理。
--help 在线帮助。
--version 显示帮助信息。
列合并:
[root@rhel5 ~]# more file*
::::::::::::::
file1.txt
::::::::::::::
f
f
f
::::::::::::::
file2.txt
::::::::::::::
1
2
3
[root@rhel5 ~]# paste -d "" file1.txt file2.txt>merge.txt
[root@rhel5 ~]# more merge.txt
f1
f2
f3
来自:http://blog.itpub.net/9240380/viewspace-764820
cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。
粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。
paste格式为:
paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。
例子:
wangnc> pg pas1
ID897
ID666
ID982
wangnc> pg pas2
P.Jones
S.Round
L.Clip
基本paste命令将pas1和pas2两文件粘贴成两列:
wangnc> paste pas1 pas2
ID897 P.Jones
ID666 S.Round
ID982 L.Clip
通过交换文件名即可指定哪一列先粘:
wangnc> paste pas2 pas1
P.Jones ID897
S.Round ID666
L.Clip ID982
要创建不同于空格或tab键的域分隔符,使用-d选项。下面的例子用冒号做域分隔符。
wangnc> paste -d: pas2 pas1
P.Jones:ID897
S.Round:ID666
L.Clip:ID982
要合并两行,而不是按行粘贴,可以使用-s选项。下面的例子中,第一行粘贴为ID号,第二行是名字。
wangnc> paste -s pas1 pas2
ID897 ID666 ID982
P.Jones S.Round L.Clip
paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个6列格式显示目录列表。方法如下:
wangnc> ls /etc | paste -d" " - - - - - -
MANPATH PATH SHLIB_PATH SnmpAgent.d/ TIMEZONE X11/
acct/ aliases@ arp@ audeventstab audomon@ auto_master
auto_parms.log auto_parms.log.old backup@ backup.cfg bcheckrc@ bootpd@
bootpquery@ bootptab btmp@ catman@ checklist@ chroot@
clri@ cmcluster/ cmcluster.conf cmom.conf conf@ convertfs@
copyright cron@ csh.login d.cshrc@ d.exrc@ d.login@
也可以以一列格式显示输出:
wangnc> ls /etc | paste -d"" -
MANPATH
PATH
SHLIB_PATH
SnmpAgent.d/
TIMEZONE
X11/
acct/
aliases@
arp@
audeventstab
audomon@
auto_master
auto_parms.log
auto_parms.log.old
backup@
backup.cfg
功能说明:合并文件的列。
语 法:paste [-s][-d ][--help][--version][文件...]
补充说明:paste指令会把每个文件以列对列的方式,一列列地加以合并。
参 数:
-d或--delimiters= 用指定的间隔字符取代跳格字符。
-s或--serial 串列进行而非平行处理。
--help 在线帮助。
--version 显示帮助信息。
列合并:
[root@rhel5 ~]# more file*
::::::::::::::
file1.txt
::::::::::::::
f
f
f
::::::::::::::
file2.txt
::::::::::::::
1
2
3
[root@rhel5 ~]# paste -d "" file1.txt file2.txt>merge.txt
[root@rhel5 ~]# more merge.txt
f1
f2
f3
来自:http://blog.itpub.net/9240380/viewspace-764820
paste '/tmp/xxy_month_1.txt' '/tmp/couter_by_moth.txt' > '/tmp/xxy_all_data.txt'
cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。
粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。
paste格式为:
paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。
例子:
wangnc> pg pas1
ID897
ID666
ID982
wangnc> pg pas2
P.Jones
S.Round
L.Clip
基本paste命令将pas1和pas2两文件粘贴成两列:
wangnc> paste pas1 pas2
ID897 P.Jones
ID666 S.Round
ID982 L.Clip
通过交换文件名即可指定哪一列先粘:
wangnc> paste pas2 pas1
P.Jones ID897
S.Round ID666
L.Clip ID982
要创建不同于空格或tab键的域分隔符,使用-d选项。下面的例子用冒号做域分隔符。
wangnc> paste -d: pas2 pas1
P.Jones:ID897
S.Round:ID666
L.Clip:ID982
要合并两行,而不是按行粘贴,可以使用-s选项。下面的例子中,第一行粘贴为ID号,第二行是名字。
wangnc> paste -s pas1 pas2
ID897 ID666 ID982
P.Jones S.Round L.Clip
paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个6列格式显示目录列表。方法如下:
wangnc> ls /etc | paste -d" " - - - - - -
MANPATH PATH SHLIB_PATH SnmpAgent.d/ TIMEZONE X11/
acct/ aliases@ arp@ audeventstab audomon@ auto_master
auto_parms.log auto_parms.log.old backup@ backup.cfg bcheckrc@ bootpd@
bootpquery@ bootptab btmp@ catman@ checklist@ chroot@
clri@ cmcluster/ cmcluster.conf cmom.conf conf@ convertfs@
copyright cron@ csh.login d.cshrc@ d.exrc@ d.login@
也可以以一列格式显示输出:
wangnc> ls /etc | paste -d"" -
MANPATH
PATH
SHLIB_PATH
SnmpAgent.d/
TIMEZONE
X11/
acct/
aliases@
arp@
audeventstab
audomon@
auto_master
auto_parms.log
auto_parms.log.old
backup@
backup.cfg
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2599/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2015-10-26 16:12
评论列表