다음 줄이 포함된 파일이 있습니다.
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
"SUKsoft:" 줄을 어떻게 제거하나요?
이 줄은 파일의 어느 위치에나 있을 수 있습니다(지금부터 시작하거나 중간).
이를 수행하는 명령이 있습니까?
답변1
에게제거하다라인 사용
sed -i '/SUKsoft:\s*$/d' your_file
예
% cat foo
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% sed -i '/SUKsoft:\s*$/d' foo
% cat foo
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
답변2
원하는 줄을 제거하는 단계는 다음과 같습니다.
$ sed 's/SUKsoft: *$//' file.txt
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
나는 file.txt
줄이 포함되어 있다고 가정합니다.
또는,
$ sed 's/SUKsoft: *$//; /^$/d' file.txt
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
아무것도 남기지 않아공백선.
사용할 수 있는 파일을 편집하려면,
sed -i 's/SUKsoft: *$//' file.txt
또는
sed -i 's/SUKsoft: *$//; /^$/d' file.txt
당신의 필요에 따라.
답변3
grep
패턴을 만족하는 라인을 검색합니다. grep -v
폐기하다패턴을 만족하는 선.
grep -v '^SUKsoft: *$'
패턴은 다음과 같습니다. ^
로 시작하는 줄( ) SUKsoft:
, 뒤에 공백이 올 수도 있지만 줄 끝까지( $
)까지 아무 것도 없습니다.
답변4
당신의 판단에 따르면원시 소스를 게시하지 않음"SUKsoft:" 뒤에는 공백이나 공백 순서가 없습니다. 그러나 안전을 위해 이 명령은 공백이 있는 경우 이를 처리합니다.
펄 사용:
perl -ne '!/^SUKsoft: *$/&&print' input
!/^SUKsoft:$/&&print
: 현재 줄이 문자열로 시작하고 뒤에 0개 이상의 공백이 오는^SUKsoft: *$
줄과 일치하는 패턴과 일치하지 않으면 해당 줄을 인쇄합니다.SUKsoft:
% cat input
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% perl -ne 'print unless /^SUKsoft: *$/' input
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW