Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 从文件中提取特定序列_Regex_Shell - Fatal编程技术网

Regex 从文件中提取特定序列

Regex 从文件中提取特定序列,regex,shell,Regex,Shell,我有一个文件,它有一个不相等间距的空格分隔符 john 0101 C1 Comp mayo 0120 D2 Comp peter 0110 E1 IT 我想从文件中提取单独字段中的所有值。 我试着用cut-like cut -f1,2,3 -d " " line1 但只有名字被正确提取,而不是保留下来。我想问题是空间不相等。请给我建议任何解决办法。 如果这是一个非常简单的问题,请道歉。这是因为cut不能很好地处理多个分隔符 您可以改用awk: awk '{pr

我有一个文件,它有一个不相等间距的空格分隔符

john  0101 C1     Comp  
mayo 0120 D2     Comp
peter  0110 E1     IT
我想从文件中提取单独字段中的所有值。 我试着用cut-like

cut -f1,2,3 -d " " line1
但只有名字被正确提取,而不是保留下来。我想问题是空间不相等。请给我建议任何解决办法。 如果这是一个非常简单的问题,请道歉。

这是因为cut不能很好地处理多个分隔符

您可以改用awk:

awk '{print $1, $2, $3}' file
或者,您可以使用tr-s“”压缩多个空格:

tr -s ' ' < file | cut -f1,2,3 -d " "

现在有tr指挥部可以把你从这种情况中解救出来

将单个字符的多次出现转换为1

echo $line | tr -s " " | cut -f1,2,3 -d " "
我可以帮你。 即使是Awk也有帮助


awk“{print$1,$2,$3}”剩余字段也

为什么在10分钟后发布重复答案?是的,我也看到了,但后来当我点击帖子时,我并没有刻意这么做。我很少使用向下投票。这绝对不是向下投票的情况:如果它对你有效,请不要忘记点击我答案左上角的勾号,将答案标记为已接受。