다음 파일을 고려하십시오.
Name Id department
some 13 IT
hey 12 IT
내가 정말로 하고 싶은 일은 사용자의 이름을 읽고 특정 ID나 부서를 편집하는 것입니다. 이 작업을 수행하려고 하는데 hey 줄에서만 바꿀 수 있는 sed
올바른 정규식을 찾을 수 없습니다 .IT
나는 정규식 세계에 비교적 새로운 사람이고 몇 가지 기본 사항 외에는 아는 바가 많지 않습니다.
답변1
sed에서 정규식을 명령 접두사로 사용하면 해당 정규식과 일치하는 줄만 편집됩니다.
sed -r '/^hey\s/s/(\s)IT$/\1whatever/'
답변2
패턴으로 특정 행을 찾고 sed
foo를 bar로 바꾸려면 다음을 수행하십시오.
sed '/pattern/s/foo/bar/'
귀하의 경우 이름이 첫 번째 열인 것 같으므로 ^
스키마에 "행 시작" 태그를 추가할 수도 있습니다.
답변3
업무용으로 사용하기 awk
보다는 사용해야 합니다 .sed
파일이 탭으로 구분된 경우:
awk -F$'\t' '$1=="hey"{$3="HR"}{OFS=FS;print}' file
공백으로 구분된 경우:
awk '$1=="hey"{$3="HR"}1' file | column -t
column -t
좋은 출력을 위해서는 선택 사항입니다.