如何在Linux中更改一组组ID

时间:2015-08-13 20:37:00

标签: linux bash awk sed

我有一个很大的/ etc / group。 100到999之间的所有GID我想通过在它的开头添加9以及我想要单独留下的所有其他组ID来更改它们。 实施例

group1:x:12:
group2:x:123:
group3:x:234:
group4:x:678:
group5:x:1234:

应该成为。

group1:x:12:
group2:x:9123:
group3:x:9234:
group4:x:9678:
group5:x:1234:

我试图用awk和sed做这件事,但有些事情我不清楚怎么办。请帮忙。谢谢。

2 个答案:

答案 0 :(得分:1)

$ awk 'BEGIN{FS=OFS=":"} $3>=100 && $3<=999 {$3="9"$3} 1' file
group1:x:12:
group2:x:9123:
group3:x:9234:
group4:x:9678:
group5:x:1234:

答案 1 :(得分:1)

使用GNU sed:

sed -r 's/:([0-9]{3}:[^:]*$)/:9\1/' file

输出:

group1:x:12:
group2:x:9123:
group3:x:9234:
group4:x:9678:
group5:x:1234: