文本处理类命令
现有txt文件如下 demo.txt:
hello 1 2 3
hi 789 9
分隔符为空格
-
grep - 过滤文本
实例:
-
grep hello demo.txt // 输出第一行
-
-
grep "i 7" demo.txt // 输出第二行
2. awk - 高级过滤文本
-
awk -F " " '{if($2==1) print $0}' a.txt // 输出第二列为1的所有行,即第一行
-
-
awk -F " " '{if($1=="hi") print $2}' a.txt // 首先找到第一列为"hi"的行,然后输出其第二列,即:789
-
-
awk -F " " '{if($2==1) print $0}' a.txt > newfile.txt // 输出第一行到newfile.txt
-
-
awk -F " " '{if(NF>3) print $0}' a.txt | head -n 1 // 过滤列数大于3的行,并输出满足条件的前一行
3.sed - 文本替换
-
sed 's/ /\t/g' a.txt // 会把所有的空格替换成tab,''内是sed执行的内容,s代表替换,第一个//中间的字符是待替换的字符,第二个//中的字符是需要替换成的字符,g代表全部替换
-
-
sed -i 's/ /\t/g' a.txt // 会把所有的空格替换成tab,并写入原文件。-i参数代表写入原文件,不带-i则只是打印出来,原文件不变。
阅读(6577) | 评论(0) | 转发(0) |