파일에서 특정 숫자를 제거하는 방법은 무엇입니까?

파일에서 특정 숫자를 제거하는 방법은 무엇입니까?

다음 내용이 포함된 텍스트 파일이 있습니다.

DESCRIPTION  ENABLED
 Tracker_EG32747257_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 100000, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0340 seconds

DESCRIPTION  ENABLED
 Tracker_EG38863805_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 100000, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0300 seconds

DESCRIPTION  ENABLED
 Session_EG32747257_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 1, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0270 seconds

DESCRIPTION  ENABLED
 Session_EG38863805_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 1, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0260 seconds....

이제 모든 "DESCRIPTION" 단어와 1을 모두 제거하고 싶습니다(1을 포함하는 단어 제외).

이 명령을 사용하고 있습니다.

sed 's/\(DESCRIPTION\|<1>\)//g'

모든 설명자를 삭제하고 파일의 숫자 1개도 모두 삭제합니다.

답변1

GNU를 사용하고 있는 것 같습니다 sed(POSIX가 sed정의되지 않음 \|). 그런 다음 Perlish 단어 경계를 사용할 수도 있지만 특별하게 만들려면 이스케이프해야 합니다 <>.

sed 's/\(DESCRIPTION\|\<1\>\)//g'

답변2

노력하다:

sed 's/^\(\<DESCRIPTION\>\|\<1\>\)//' infile

전역 옵션을 사용했고 g1의 모든 항목을 제거했기 때문에 DESCRIPTION동일한 작업을 수행합니다. 위에서 언급한 것처럼, ^줄이 이것으로 시작하는 경우 1과 설명을 제거하려면 줄 시작 앵커만 필요합니다.

관련 정보