id
사용자가 구성원 인 그룹별로 더 읽기 쉬운 목록을 제공하기 위해 출력을 분할했습니다 .
id roaima | sed 's/,/\n\t/g'
uid=1001(roaima) gid=1001(roaima) groups=1001(roaima)
24(cdrom)
25(floppy)
...
822413650 (international (uk) location)
그룹 번호를 괄호로 묶은 이름과 분리하고 싶었으므로 식을 다음과 같이 확장했습니다.
id roaima | sed -e 's/,/\n\t/g' -e '2,$s/(/ (/'
그러나 이것은 처음에 예상 한대로 작동하지 않았습니다. 두 번째 표현은 효과가없는 것으로 보입니다.
대신 원하는 결과를 얻으려면 다음 sed
과 같이 두 개의 별도 명령 을 실행해야 했습니다.
id roaima | sed -e 's/,/\n\t/g' | sed '2,$s/(/ (/'
uid=1001(roaima) gid=1001(roaima) groups=1001(roaima)
24 (cdrom)
25 (floppy)
...
822413650 (international (uk) location)
sed
파이프에 여러 명령이있는 명령이 아닌 두 개의 명령이 필요한 이유는 무엇 입니까? 또는 내가 이것을 할 수 있다면 sed
어떻게해야합니까?
내가 특히 원하는 것은 모든 단일 항목 (첫 번째 줄의 UID 및 GID 포함)에 대해 UID / GID 값과 괄호 이름 사이에 단일 공백을 두는 것입니다. 그러나주의해야 할 점은 실제 데이터에서 그룹을 가질 수 있다는 것입니다 이름에 대괄호를 포함하고 이름 자체가 엉망이되는 것을 원하지 않습니다.
-vRS=,
또는-054
도움 이 될 수 있습니다.