有人可以解释我这些" sed"命令和他们在做什么?

时间:2018-04-14 15:47:57

标签: linux bash sed sh

有人可以快速解释这些线路正在做什么以及它们的影响是什么?

1)sed -i "/^exampleusername/s/:1000:1000:/:${UID}:${GID}:/g" /etc/passwd

2)sed -i "/^examplegroupname/s/:1000:/:${GID}:/g" /etc/group

如果您对更多背景感兴趣,我会看到它们here

1 个答案:

答案 0 :(得分:2)

您应该查看sed教程或手册页。这是#1细分(并且不再有效sed)。第二个具有相同的一般形式:

/^exampleusername/      # Perform a command on matching lines (address)
    s/                  # Substitute command with / as delimiter
      :1000:1000:       # Pattern to find
      /                 # Delimiter
      :${UID}:${GID}:   # String to replace with (expanded by bash)
      /                 # Terminating delimiter
      g                 # Regex flag (global: replace all matches in line)

所以它只是找到以exampleusername开头的行,并用当前用户的UID / GID替换所有出现的:1000:1000:

这有效地使exampleusername与您当前的用户相同。