scripts reorganize
This commit is contained in:
1 parent
a2a056a68d
commit
0734bee219
60 files changed
+824
-5
No files matched your search
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
#This script sanitizes a file in the following manner:
|
||||
#it reads a pattern and a destFile
|
||||
#then, all lines in destFILE that can be regexp'd to pattern are removed.
|
||||
#optionally, a confirm variable is also specified; if so, the script does not prompt the user before overwriting destFILE
|
||||
|
||||
#this script takes the following input:
|
||||
#sanitize.sh pattern destFile [confirm]
|
||||
|
||||
#make sure input is valid
|
||||
[[ "$1" == "" || "$2" == "" ]] && printf "Incorrect input format.\nUse: \t sanitize.sh pattern destFile [confirm]\n" && exit
|
||||
[[ ! -f "$2" ]] && printf 'destFile - %s - does not exist!\n' "$2" && exit
|
||||
|
||||
|
||||
PATTERN=$1
|
||||
destFile=$2
|
||||
saveArray=()
|
||||
discardArray=()
|
||||
[[ "$3" =~ [yY][eE][sS]|[yY]|1|[tT][rR][uU][eE] ]] && confirm=0 || confirm=1
|
||||
|
||||
#go through each line, adding to either SAVE or DISCARD as necessary
|
||||
while read -r line; do
|
||||
[[ ! $line =~ $PATTERN ]] && saveArray+=("$line") || discardArray+=("$line")
|
||||
done < "$destFile"
|
||||
|
||||
#confirm output
|
||||
if [[ $confirm -eq 1 ]]; then
|
||||
printf "Discarding the following:\n"
|
||||
printf '%s\n' "${discardArray[@]}"
|
||||
else
|
||||
printf 'Discarding %d line(s).\n' "${#discardArray[@]}"
|
||||
fi
|
||||
|
||||
#confirm the user is ok with this
|
||||
response="y"
|
||||
[[ $confirm -eq 1 ]] && read -r -p "Proceed? (y/N): " response
|
||||
if [[ "$response" =~ [yY][eE][sS]|[yY] ]]; then
|
||||
echo "Removing unwanted lines..."
|
||||
printf '%s\n' "${saveArray[@]}" > "$destFile"
|
||||
fi
|
||||