Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何仅从以x开头的行中剪切字符?_Linux_Unix_Grep_Cut - Fatal编程技术网

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