jav*_*ved 16 unix perl awk sed
我需要从制表符分隔文件中选择第7列.例如:
cat filename | awk '{print $7}'
Run Code Online (Sandbox Code Playgroud)
问题是第4列中的数据有多个值,中间有空白.示例 - 以下输出中的最后一行:
user \Adminis FL_vol Design 0 - 1 -
group 0 FL_vol Design 19324481 - 3014 -
user \MAK FL_vol Design 16875161 - 2618 -
tree 826 FL_vol Out Global Doc Mark 16875162 - 9618 - /vol/FL_vol/Out Global Doc Mark
Run Code Online (Sandbox Code Playgroud)
tri*_*eee 18
如果数据明确地以制表符分隔,那么cut将剪切选项卡,而不是空格:
cut -f7 filename
Run Code Online (Sandbox Code Playgroud)
你当然也可以这样做awk:
awk -F'\t' '{ print $7 }'
Run Code Online (Sandbox Code Playgroud)
如果字段由制表符分隔,并且您担心某些字段包含空格,则此处没有问题,只需:
cut -f 7
Run Code Online (Sandbox Code Playgroud)
(剪切默认为制表符分隔的字段.)
根据输入文件的格式判断,您可以使用分隔符-代替空格:
awk 'BEGIN{FS="-"} {print $2}' filename
Run Code Online (Sandbox Code Playgroud)
FS代表字段分隔符,只需将其视为输入的分隔符即可。-,您之前的第 7 个字段现在变成了第 2 个字段。filename为 awk 的参数。或者,如果您的数据字段由制表符分隔,您可以更明确地执行以下操作:
awk 'BEGIN{FS="\t"} {print $7}' filename
Run Code Online (Sandbox Code Playgroud)
这将解决问题,因为Out Global Doc Mark看起来是用空格分隔的。