我有一个文件,它有一个空间分隔符,它们的间隔不等,
john 0101 C1 Comp
mayo 0120 D2 Comp
peter 0110 E1 IT
等。我想从单独的字段中提取文件中的所有值。 我尝试使用cut like,
cut -f1,2,3 -d " " line1
但只有正确的名字才能正确提取而不是剩余。我认为问题在于空间不平等。请建议我解决这个问题 抱歉,如果这是一个非常简单的问题。
答案 0 :(得分:8)
这是因为cut
在多次出现分隔符时效果不佳。
您可以改用awk:
awk '{print $1, $2, $3}' file
或者,您可以使用tr -s ' '
来挤压多个空格:
tr -s ' ' < file | cut -f1,2,3 -d " "
答案 1 :(得分:2)
存在tr命令,可以帮助您摆脱这种情况,
将多个单个字符的出现转换为1
echo $line | tr -s " " | cut -f1,2,3 -d " "
会为你做的。 甚至Awk也可以提供帮助
awk '{print $1, $2, $3}'
(其他字段也是)