sed 删除换行符
sed ':label;N;s/\n/:/;b label' filename
sed ':label;N;s/\n/:/;t label' filename
shell中echo输出不换行.
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 所以呢有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用.该命令的一般格式为: echo-n 字符串其中选项n表示输出文字后不换行.
去掉文件中的换行符
(1)tr命令的操作是针对文件的操作,它把整个文本当做操作的对象,所以可以直接去除文件中的换行符
tr '\n' ' ' file
cat file | sed 'N;s/\n/ /'
所以上面的语句是不能把文件内容合并为一行的,到底该怎么写,我暂时没有想到,呵呵
awk '{printf("%s ",$0)}' file
while read line;do echo -n "$line"; done awk_help.txt, 这样,可以把awk_help.txt的内容合并为一行
sed -e "s#\[/r][/r][/n]#\[/r][/n]#g" file
在Linux系统里常用于文本查看、操作、统计的命令:
通过多敲键盘,形成手感 肌肉记忆 ,熟练掌握这些命令,在以后生信分析中游刃有余.以下是每个命令的详细的介绍(主要是跟着 生信技能树小郭老师 学习做的笔记)
此时此刻呢通过示例把10个命令的常用参数和用法展示出来:
参数的用法介绍:
注意事项:
zcat可以查看压缩的文本文件,tac逆向查看
结合 管道符| 使用
less命令用得最多 ,more命令用得比较少
less [参数] 文件名
less命令重要的补充用法1 :
需要注意 退出 :只要使用less命令, 按q键
参数用法:
less命令 不加参数 查看文件:
less命令加 -N参数 查看文件:显示行号
less命令加 -S参数 查看文件:单行显示,非常规整
对比:less和cat命令显示文本行号的用法:less -N,cat -n
**more ** 逐页查看,按空格翻页,按回车换行 ,more命令一般很少用,熟练掌握less命令就好
查看压缩文件
wc 统计字符是也把换行符统计进去,但是别的命令不一定会把换行符算进去,.
常见参数:
切记:用less命令,按q退出
cut命令是按关键词来切的
排列前:
排列后:
命令行查看一个表格结构时,因为制表符对齐的原因,出现一个错位的现象.还有 字典排序 可能和我们平时的认知不一样,所以 加上-n参数 , 让数值有数学意义上的大小来排序 .
uniq命令去重,只有两行出现重复,而且是相邻的两行,如果不相邻,即使出现两行一模一样,不会去重.
uniq命令通常和sort命令搭配使用
换其它文件试试
都说到这里了大家应该明白,uniq命令使用时经常和sort一起
常见用法1:
-s :按行合并 演示
要养成一个好习惯,原始数据不要轻易修改,修改的东西另外保存,文本保存用 (重定向)或是 (追加)
① 用 less 查看 example.gtf ,然后管道符传递给 wc
补充小知识 :
清屏 :control L
查看历史(输入过的)命令 :history
指令代码:set nowrap
详解:我们在linux服务起上多用vim查看文件,常有这行的情况,我们的解决办法有两个,即,
修改配置文件~/.vimrc set nowrap
拓展:
syntax on " 自动语法高亮
"set number " 显示行号
"set cursorline " 突出显示当前行
在windows上编写的shell、python等脚本在Linux上无法正常的执行,会有 ^M 相关提示,
原因 :
在Linux上使用vim打开文件,显示很多的 ^M 字符,主要是因为在Windows下换行使用CRLF两个字符来表示,其中CR为回车(ASCII=0x0D),LF为换行(ASCII=0x0A),而在Linux下使用LF一个字符来表示.在Linux下使用vim来查看一些Windows下创建的脚本文件时,会发现在每一行尾部有^M字符,其实它是显示CR回车字符
Unix体系里,每行结尾只有"换行",即"\n";
Windows体系里面,每行结尾是"换行回 车",即"\n\r".
一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号.
使用vim方式处理
在vim命令模式下输入%s/^M$//g
回车即会自动删除该文件中的所有 ^M 字符.
% 指匹配整个文件,s 是置换的意思,^M 注意要用 Ctrl + V Ctrl + M 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换.
理解了命令的含义,就好变通使用了,比如说,要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g.
方法1:
在命令模式下:输入:%s/^M//g 然后,回车即可替换
注,其中"^M"的输入,分别是"Ctrl+v"、"Ctrl+M"键生成的
使用vi打开文本文件
vi dos.txt
命令模式下输入
:set fileformat=unix
:w
使用sed 工具
sed 's/^M//' filename tmp_filename
既然window下的回车符多了'\r',那么当然通过删除'\r' ,也可以实现:
tr -d '\r'
tofrodos
(1)安装tofrodos
sudo apt-get install tofrodos
安装完即可,现在你已经可以进行文本格式的转换啦.
PS :