shell文本编辑单行快速参考
shell中有很多命令适合对文本进行编辑,如grep,cut,sed,awk等,命令有很多,但没有哪个命令可以方便的通吃天下,而且由于shell命令的独特用法,用后即忘,现在记载于此,方便日后查询。
一、行操作
1.显示文件内容前10行
head -n 10 filename
2.显示文件内容后10行
tail -n 10 filename
3.显示指定的行数(2-5行)
sed -n '2,5p' filename
4.获取指定内容的行号
grep -n "oenhan" filename | cut -d ":" -f1
5.显示匹配内容之间的行
sed -n '/1oenhan/,/oenhan1/p'
6.删除指定的数据行(2-3行)
suse:/tmp # cat dfile Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 4127108 2269932 1647528 58% / udev 478232 112 478120 1% /dev /dev/sda7 3091284 282392 2651860 10% /fs /dev/sda5 505604 79131 400369 17% /var suse:/tmp # cat dfile | sed '2,3d' Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda7 3091284 282392 2651860 10% /fs /dev/sda5 505604 79131 400369 17% /var
7.删除匹配正则表达式的行
suse:/tmp # cat dfile Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 4127108 2269932 1647528 58% / udev 478232 112 478120 1% /dev /dev/sda7 3091284 282392 2651860 10% /fs /dev/sda5 505604 79131 400369 17% /var suse:/tmp # cat dfile | sed '/sda1/d' Filesystem 1K-blocks Used Available Use% Mounted on udev 478232 112 478120 1% /dev /dev/sda7 3091284 282392 2651860 10% /fs /dev/sda5 505604 79131 400369 17% /var
二、列操作
1.获取指定的列数
suse:/tmp # cat dfile Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 4127108 2269932 1647528 58% / udev 478232 112 478120 1% /dev /dev/sda7 3091284 282392 2651860 10% /fs /dev/sda5 505604 79131 400369 17% /var suse:/tmp # cat dfile | awk '{print $2" " $3}' 1K-blocks Used 4127108 2269932 478232 112 3091284 282392 505604 79131
三、内容操作
1.获取以空格分离的字符串
suse:~ # df | grep /dev$ udev 478232 112 478120 1% /dev suse:~ # df | grep -o /dev$ /dev
shell文本编辑单行快速参考来自于OenHan
链接为:https://oenhan.com/shell-text-editor-1line