Linux 如何仅从以x开头的行中剪切字符?
我正在尝试使用Linux 如何仅从以x开头的行中剪切字符?,linux,unix,grep,cut,Linux,Unix,Grep,Cut,我正在尝试使用cut-c-2-18-filename来剪切第2个和第18个字符之间的所有内容。这会在每一行上剪切指定的字符,但我只想从以开头的行中剪切,类似于 grep ^\> file | cut -c 2-18 你应该做这个把戏吗 [92][11:46:21] vlazarenko@alluminium (~/tests) > grep ^\> file | cut -c 2-18 asdf bcda ofpjg [93][11:46:25] vlazarenko@
cut-c-2-18-filename
来剪切第2个和第18个字符之间的所有内容。这会在每一行上剪切指定的字符,但我只想从以
开头的行中剪切,类似于
grep ^\> file | cut -c 2-18
你应该做这个把戏吗
[92][11:46:21] vlazarenko@alluminium (~/tests) > grep ^\> file | cut -c 2-18
asdf
bcda
ofpjg
[93][11:46:25] vlazarenko@alluminium (~/tests) > cat file
> asdf
> bcda
zxcv
lasdf
> ofpjg
您可以单独使用
GNU grep
来执行此操作:
$cat文件
>grep从2到18个字符的第1行
>grep从2到18个字符的第2行
grep从2到18个字符的第3行
grep从2到18个字符的第4行
$grep-Po'(?).{17}'文件
格雷普从2岁到18岁
格雷普从2岁到18岁
这仅用于匹配以
开头的行,并且{17}
匹配接下来的17个字符
或使用awk
:
$awk'/^>/{print substr($0,2,18)}文件
格雷普从2岁到18岁
格雷普从2岁到18岁
@sudo-o:添加备选方案的原始方式;)
awk '/^\>/{print substr($0,2,17)}' your_file