하지만
나는이 방법이 테스트 :
perl -0pwe "s,\nbeer/name,|,g" <<<"beer/name: The Horseman's Ale"$'\nbeer/beerId: 33061\nbeer/brewerId: 14359\nbeer/ABV: 5.20\n\nbeer/name: blah beer\nbeer/beerId: 33045\nbeer/brewerId: 14678'
명령 줄에서.
출력 :
beer/name: The Horseman's Ale
beer/beerId: 33061
beer/brewerId: 14359
beer/ABV: 5.20
|: blah beer
beer/beerId: 33045
beer/brewerId: 14678
가 cat
하여 펄 부분을 교체 테스트 흐름을 보장 :
cat <<<"beer/name: The Horseman's Ale"$'\nbeer/beerId: 33061\nbeer/brewerId: 14359\nbeer/ABV: 5.20\n\nbeer/name: blah beer\nbeer/beerId: 33045\nbeer/brewerId: 14678' | sed 's/^/ /'
출력 :
beer/name: The Horseman's Ale
beer/beerId: 33061
beer/brewerId: 14359
beer/ABV: 5.20
beer/name: blah beer
beer/beerId: 33045
beer/brewerId: 14678
그래서 거기에서 나는 을 명중 easely 수, Ctrl + 및 사용 는 + Ctrl 키 바로, , 을 왼쪽에서 오른쪽 라인을 수정할 수있는 위치에 도달하기 + 을 및/또는 Ctrl 키를 왼쪽으로 ...
perl -0pwe '...' -i.bak path/filename
또는 펄 스크립트를 만들 : 당신은 출력이 당신의 필요에 맞는, 당신은 간단하게 당신의 switchs를 대체 할 수있어 일단
perltidy <<< 's,\nbeer/name,|,g'
sed '1i#!/usr/local/bin/perl -0pwi.bak\nuse strict;' <(
perltidy <<< 's,\nbeer/name,|,g') >myscript.pl
나는 당신의 문제를 재현 할 수 있습니다. 내 시스템에서 파일은 * 삭제되지 * 않습니다. –
감사합니다. 나는 "파일의 모든 내용이 삭제되었습니다"라고 말했어야합니다. 실제 파일은 남아 있으며 내용이 없습니다. – user2896837
나는 같은 대답을해야합니다. 우리 시스템에서 빈 줄과'beer/name'은'|'로 대체되고 나머지 파일 내용은 그대로 유지됩니다. –