나는 표준 passwd 파일 & usermap 파일이 ...
passwd 파일을 편집하여 원래 유닉스 이름을 AD 계정 이름으로 바꿔 passwd 파일의 각 줄에 AD 계정 이름이 대신 표시되도록 할 수 있습니까?
Perl 학습자를위한 도움을 주시면 감사하겠습니다.AWK 또는 Perl 파일 편집 및 조작
1
A
답변
0
여기에서 할 수있는 AWK 하나 라이너의
$ cat map.txt
jbloggs bloggsjoe
jsmith smithjohn
$ cat passwd
root:x:0:0:root:/root:/bin/bash
jbloggs:x:493:484:Blogger:/var/run/lib:/sbin/nologin
jsmith:x:27:481:MySQL Server user:/var/lib/mysql:/bin/bash
$ awk -F":" 'FNR==NR{gsub(" +",":");m[$1]=$2;next}($1 in m){$1=m[$1]}1' OFS=":" map.txt passwd
root:x:0:0:root:/root:/bin/bash
bloggsjoe:x:493:484:Blogger:/var/run/lib:/sbin/nologin
smithjohn:x:27:481:MySQL Server user:/var/lib/mysql:/bin/bash
1
#! /usr/bin/perl -T
use strict;
use warnings;
use File::Slurp 'slurp';
my ($map_file, $pass_file) = @ARGV or die 'No arguments given!';
my %ad_for;
for my $line (slurp($map_file)) {
chomp $line;
my ($unix, $ad) = split//, $line;
$ad_for{$unix} = $ad;
}
for my $line (slurp($pass_file)) {
my ($name, @entries) = split /:/, $line;
if ($ad_for{$name}) {
print join ':', $ad_for{$name}, @entries;
}
else {
warn "name $name doesn't have an ad entry\n";
}
}
+0
고마워, 이제는 쓸 필요가 없습니다. –
0
Perl에서는 AD 파일을 읽고 AD-Unix 해시를 채운 다음 한 줄짜리로 바꾸기 위해 사용할 수 있습니다. 물론 사용자 이름이 중복되어 있지 않다고 가정합니다.
은 (테스트되지 않은)
my %AD;
system ("perl -ane '$AD{$F[0]} = $F[1]' unixMap.txt");
system ("perl -i -ape 's/$F[0]/$AD{$F[0]}/' passwordFile.txt");
0
사용 Passwd::Unix
그./etc/passwd,/etc/shadow 및/etc/group 중 coordinate the editing이 표시됩니다. 파일을 편집하기 전에이 파일을 백업하십시오.
관련 문제
- 1. awk, perl 또는 sed를 사용하여 LiveHTTPHeaders 출력에서 응답을 제거하려면 어떻게해야합니까?
- 2. Perl 배열 조작
- 3. AWK + 수행 또는 행동 awk 명령에하는 방법
- 4. awk 및 bash 스크립트
- 5. 파일 편집 및 작성하기
- 6. sed 또는 awk multiline 바꾸기
- 7. 파일 조작
- 8. awk 스크립트는 다음 파일 형식
- 9. PowerPoint 파일 조작 도구
- 10. 쉘 및 awk 스크립트 최적화
- 11. iTextSharp 파일 조작 및 FileStreamResults 표시
- 12. Ada 파일 조작 : 인스턴스화 및 예외
- 13. Ruby GEM (파일 및 디렉토리 조작)
- 14. 열기 및보기 및/또는 편집 확인 21 이미지 파일
- 15. Perl - 내부 파일 (작성 및 실행)
- 16. PHP를 사용하여 .doc 또는 .docx 파일 편집
- 17. 현재의 Perl 편집 중에 단일 문자열 정규 표현식 사용
- 18. 프롤로그 파일 조작 문제
- 19. 기본 PHP 파일 조작
- 20. 간단한 레이크 파일 조작
- 21. HTML 파일 조작
- 22. 조작 CSS 파일 프로그램
- 23. 파이썬 파일 조작
- 24. 일괄 파일 문자열 조작
- 25. C 파일 조작 문제는
- 26. 프롤로그 파일 조작
- 27. 안드로이드 파일 조작
- 28. jQuery 파일 이름 조작
- 29. 펄 AWK + 펄에서 시스템 명령의 실행 AWK (? 구문 문제)
- 30. sed 및 awk 명령에 대한 도움이 필요하십니까?
두 파일의 이름이 정확히 같은 순서입니까? 한 파일의 항목 수가 다른 항목보다 적습니까? 여기 엔 몇 개의 항목이 있습니까? 몇 십만 명이나 수백만 명? – Zaid
모두에게 감사드립니다. 이것은 내가 필요한 것입니다. – paul44