17 lines
393 B
Bash
17 lines
393 B
Bash
#!/bin/bash
|
|
INPUT="$1"
|
|
RECURSIVE="$2"
|
|
|
|
if [[ -f "$INPUT" ]]; then
|
|
INPUT=$(cat "$INPUT")
|
|
fi
|
|
|
|
OUTPUT=$(echo "$INPUT" | yq e 'del(.. | select(length == 0))')
|
|
if [[ "$RECURSIVE" == "true" ]]; then
|
|
while [ "$(echo "$OUTPUT" | yq e 'map (.. | select (length == 0)) | any')" = "true" ]; do
|
|
OUTPUT=$(echo "$OUTPUT" | yq e 'del (.. | select (length == 0))')
|
|
done
|
|
fi
|
|
|
|
echo "$OUTPUT"
|