我有一个文件说test.txt,内容如下:
apple:orange:mango:123:1234:12345
我希望删除第三次冒号后的所有数据
预期输出
apple:orange:mango:
Kinldy帮助
答案 0 :(得分:1)
使用反向引用:
sed 's/\([^:]*:[^:]*:[^:]*:\).*/\1/' test.txt
或使用GNU sed:
sed -E 's/(([^:]*:){3}).*/\1/' test.txt
答案 1 :(得分:0)
使用grep
:如果需要最后一个冒号。
grep -oP '^.*?:.*?:.*?:' input
apple:orange:mango:
如果不需要最后一次冒号:
grep -oP '^.*?:.*?:[^:]+' input
apple:orange:mango
答案 2 :(得分:0)
您可以使用cut
执行此操作,例如cut -d: -f1-3 test.txt
。它显示了第一,第二和第三列。如果您需要其他范围的列,只需将-f1-3
替换为您需要的内容。
`
答案 3 :(得分:0)
echo apple:orange:mango:123:1234:12345| awk '{gsub(/[0-9]:*/,"")}1'
apple:orange:mango: