복잡한 선을 매우 정확하게 일치시키는 방법

복잡한 선을 매우 정확하게 일치시키는 방법

우리는 다음과 같은 파일을 가지고 있습니다:

more test.txt

export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g"
export KAFKA_JVM_PERFORMANCE_OPTS="-XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX
:MaxMetaspaceFreeRatio=80"

라인을 확인하는 방법:

export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g"

그리고

export KAFKA_JVM_PERFORMANCE_OPTS="-XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX
    :MaxMetaspaceFreeRatio=80"

파일에 있음 - test.txt

물론 우리는 할 수 있습니다

grep -q 'export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g"' test.txt 
[[ $? -eq 0 ]] && echo "line in file"


grep -q 'export KAFKA_HEAP_OPTS="export KAFKA_JVM_PERFORMANCE_OPTS="-XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX
        :MaxMetaspaceFreeRatio=80"' test.txt 
[[ $? -eq 0 ]] && echo "line in file"

하지만 이 방법은 매우 서투르다.

답변1

#! /bin/bash

env - bash -c '. test.txt; [ -n "$KAFKA_HEAP_OPTS" ] && [ -n "$KAFKA_JVM_PERFORMANCE_OPTS" ]'
if [ $? -eq 0 ]; then
     echo 'OK'
else
    echo 'ERROR'
fi

관련 정보