我有一个.csv文件,其中填写了人员,他们的小组,他们居住的城市以及他们能够工作的那一天的名字,这4个信息用这个"分开:"。
例如
Dennis:GR1:Thursday:Paris
Charles:GR3:Monday:Levallois
Hugues:GR2:Friday:Ivry
Michel:GR2:Tuesday:Paris
Yann:GR1:Monday:Pantin
我想剪切第二列和第三列,并打印所有包含以" s"结尾的名称的行,但不删除第二列。
例如,我希望有类似的东西:
Dennis:Paris
Charles:Levallois
Hugues:Ivry
我尝试用grep和cut进行此操作,但是使用切割结束只剩下第一个。
我希望我能够让自己明白!
答案 0 :(得分:0)
听起来你只需要:
$ awk 'BEGIN{FS=OFS=":"} $1~/s$/{print $1, $4}' file
Dennis:Paris
Charles:Levallois
Hugues:Ivry
要解决您的请求grep + cut解决方案的评论:
$ grep -E '^[^:]+s:' file | cut -d':' -f1,4
Dennis:Paris
Charles:Levallois
Hugues:Ivry
但是awk是正确的方法。