![대문자로 시작하는 파일 라인에 "#"을 추가하는 스크립트를 작성할 수 있습니까?](https://linux55.com/image/176102/%EB%8C%80%EB%AC%B8%EC%9E%90%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%ED%8C%8C%EC%9D%BC%20%EB%9D%BC%EC%9D%B8%EC%97%90%20%22%23%22%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%9E%91%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
학교 프로젝트를 더 쉽게 만들기 위해 bash 스크립트에서 대문자로 시작하는 각 줄에 구분 기호를 추가하고 싶습니다. 누구든지 나를 도와줄 수 있나요? case 명령을 사용하여 파일을 한 줄씩 읽으려고 시도했지만 작동하지 않습니다. 내가 무엇을 하고 있는지 정말 이해가 되지 않습니다. 이것이 내가 지금까지 가지고 있는 것입니다: (저는 스크립팅이 처음입니다. 화나게 하지 마세요)
#!/bin/bash
input=/home/user/file
while IFS= read -r var
do
case [A-Z]
sed 's/^/#/' file
done
답변1
텍스트를 처리하기 위해 쉘 루프를 사용하지 않습니다.. 텍스트 처리는 한 번에 한 줄씩 입력을 처리하는 텍스트 처리 도구를 통해 수행됩니다.
#! /bin/sh -
input=/home/user/file
sed 's/^[[:upper:]]/#&/' < "$input"
각 줄의 start()에서 대문자 앞에 삽입됩니다 #
.^
$input
여기서 대문자는 로캘 설정에 따라 결정됩니다. 여기에는 ABCDEFGHIJKLMNOPQRSTUVWXYZ 문자가 포함되며, 있을 경우 Á, Ź 또는 Π도 포함될 수 있습니다.
ABCDEFGHIJKLMNOPQRSTUVWXYZ로만 제한하려면 다음과 같이 작성할 수 있습니다.
sed 's/^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/#&/' < "$input"
[A-Z]
그 자체로는 로케일에 따라 무엇이든 일치할 수 있습니다. 당신은 그것이 abcdefghijklmnopqrstuvwxy
시스템과도 일치한다는 것을 알게 될 것입니다. z
대부분의 시스템에서는 Á와 일치하지만 로케일의 문자 맵에 있는 경우 Ź와 일치하지 않습니다. 문자 시퀀스(헝가리어와 같은 다중 문자 조합 요소 Ddzs
)와도 일치할 수 있습니다.