删除文本中多余的东西
> > > ~~~
> > >
> > > # notepad++查找并删除重复行只需要一条命令
> > > ^(.*?)$\s+?^(?=.*^\1$)
> > >
> > > # 直接全部替换,注意勾选:正则和匹配行
> > >
> > > ~~~
> > >
> > >
-
文件里的文件名写入
ls reads / | sed "s/.gz//g" > species.txt #将reads文件夹后缀名为.gz的文件名导入TXT里,在reads外输入
-
sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:
sed -i "s/shan/hua/g" lishan.txt # 把当前目录下lishan.txt里的shan都替换为hua
sed的其他用法如下:
1、删除行首空格
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
2、行后和行前添加新行
行后:sed 's/pattern/&\n/g' filename
行前:sed 's/pattern/\n&/g' filename
&代表pattern
3、使用变量替换(使用双引号)
sed -e "s/$var1/$var2/g" filename
4、在第一行前插入文本
sed -i '1 i\插入字符串' filename
5、在最后一行插入
sed -i '$ a\插入字符串' filename
6、在匹配行前插入
sed -i '/pattern/ i "插入字符串"' filename
7、在匹配行后插入
sed -i '/pattern/ a "插入字符串"' filename
8、删除文本中空行和空格组成的行以及#号注释的行
grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
- tr命令的使用手册
1、将文件file中出现的"abc"替换为"xyz"
代码如下:
# cat file | tr "abc" "xyz" > new_file
【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。
2、使用tr命令“统一”字母大小写
(小写 --> 大写)
代码如下:
# cat file | tr [a-z] [A-Z] > new_file
(大写 --> 小写)
代码如下:
# cat file | tr [A-Z] [a-z] > new_file
3、把文件中的数字0-9替换为a-j
代码如下:
# cat file | tr [0-9] [a-j] > new_file
4、删除文件file中出现的"Snail"字符
代码如下:
# cat file | tr -d "Snail" > new_file
【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。
5、删除文件file中出现的换行'\n'、制表'\t'字符
代码如下:
# cat file | tr -d "\n\t" > new_file
不可见字符都得用转义字符来表示的,这个都是统一的。
6、删除“连续着的”重复字母,只保留第一个
代码如下:
# cat file | tr -s [a-zA-Z] > new_file
7、删除空行
代码如下:
# cat file | tr -s "\n" > new_file
8、删除Windows文件“造成”的'^M'字符
代码如下:
# cat file | tr -d "\r" > new_file
或者
代码如下:
# cat file | tr -s "\r" "\n" > new_file
【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者
9、用空格符\040替换制表符\011
代码如下:
# cat file | tr -s "\011" "\040" > new_file
10、把路径变量中的冒号":",替换成换行符"\n"
代码如下:
# echo $PATH | tr -s ":" "\n"
11、若要将大括号转换为小括号,请输入:
代码如下:
tr '{}' '()' < textfile > newfile
这便将每个 {(左大括号)转换成 ((左小括号),并将每个 }(右大括号)转换成 )(右小括号)。所有其它的字符都保持不变。
12、若要将大括号转换成方括号,请输入:
代码如下:
tr '{}' '\[]' < textfile > newfile
这便将每个 {(左大括号)转换成 [(左方括号),并将每个 }(右大括号)转换成 ](右方括号)。左方括号必须与一个 "\"(反斜扛)转义字符一起输入。
13、若要将小写字符转换成大写,请输入:
代码如下:
tr 'a-z' 'A-Z' < textfile > newfile
14、若要创建一个文件中的单词列表,请输入:
代码如下:
tr -cs '[:lower:][:upper:]' '[\n*]' < textfile > newfile
这便将每一序列的字符(除大、小写字母外)都转换成单个换行符。*(星号)可以使 tr 命令重复换行符足够多次以使第二个字符串与第一个字符串一样长。
15、若要从某个文件中删除所有空字符,请输入:
代码如下:
tr -d '\0' < textfile > newfile
16、若要用单独的换行替换每一序列的一个或多个换行,请输入:
代码如下:
tr -s '\n' < textfile > newfile
或
代码如下:
tr -s '\012' < textfile > newfile
17、若要以“?”(问号)替换每个非打印字符(有效控制字符除外),请输入:
代码如下:
tr -c '[:print:][:cntrl:]' '[?*]' < textfile > newfile
这便对不同语言环境中创建的文件进行扫描,以查找当前语言环境下不能打印的字符。
18、要以单个“#”字符替换 <space> 字符类中的每个字符序列,请输入:
代码如下:
tr -s '[:space:]' '[#*]'
网友评论