dat 파일에서 사용자 추가

dat 파일에서 사용자 추가

이름이 포함된 데이터 파일이 있습니다. 그룹이나 비밀번호 없이 추가해야 하는 사용자 이름입니다. 물론 모든 공백을 제거해야합니다. bash 스크립트를 사용하여 추가해야 합니다. 누구든지 스크립트 작성을 도와줄 수 있나요?

문서:

Marianne        Earman
Justina Dragaj
Mandy   Mcdonnell
Conrad  Lanfear
Cyril   Behen
Shelley Groden
Rosalind        Krenzke
Davis   Brevard
Winnie  Reich
Trudy   Worlds
Deshawn Inafuku
Claudio Loose
Sal     Pindell
Cristina        Sharper
Tricia  Kruss

내 스크립트:

#!/bin/bash
#users.dat | sed "s/\t\t*/ /g"
while read p; do
  #var=$(echo $p | sed "s/\t\t*/ /g")
  var= echo $p | sed '/^$/d;s/[[:blank:]]//g'
  #sudo useradd $var
  sudo useradd $var
 done < users.dat

답변1

이 작업은 단일 파이프라인에서 수행할 수 있습니다. 입력에서 각 줄을 xargs실행 하면 됩니다.useradd

sed '/^[[:space:]]*$/d; s/[[:space:]]//g' users.dat |
  xargs -I{} echo {}

올바른 일을 하고 있다고 확신할 때 로 바꾸세요 echo.useradd

또한 Debian 기반 시스템(예: Ubuntu, Linux Mint)에 대해 이 코드를 작성하는 경우 adduser대신 사용을 고려해야 합니다 useradd.adduser는 수행하지만 useradd는 수행하지 않는 작업은 무엇입니까?

답변2

echo명령을 실행하기 전에 출력을 변수에 추가해야 합니다 . 이렇게 하면 이제 이전 명령의 출력이 표시됩니다. 아래 스크립트를 시도해 보세요. 잘 작동할 겁니다.var$var

#!/bin/bash
while read p; do
var=$(echo $p | sed '/^$/d;s/[[:blank:]]//g')
  echo $var
  #sudo useradd $var
 done < users.dat 

관련 정보