Я хочу напечатать ключевое слово «word» определенным образом. Например, у меня есть 3 разных файла с именем 1 2 3
1:
word xy
word
2:
x слово y
3:
xy слово
word
x
и вывод должен быть таким:
для 1: слово x и просто слово
для 2: x слово
для 3: y слово и слово
но в моем коде первый и третий вывод => слово x и y слово AND слово y и слово x
вкратце как я могу отделить строку?
#!/bin/bash
wordCount() {
for i in "$1"/*; do
if [ -d "$i" ]; then
wordCount "./${i}" "$2"
else
if grep -q "$2" "$i"; then
local format=($(grep "$2" "$i"))
for ((x=0; x< ${#format[@]} ;x++))
do
if [ "${format[$x]}" = "$2" ]
then
if [ \( "$x" -gt "0" \) ] && [ \( "$x" -lt "$((${#format[@]}-1))" \) ]
then
echo "${format[$x-1]}" "${format[$x]}" "${format[$x+1]}"
elif [ "$x" -eq "$((${#format[@]}-1))" ]
then
echo "${format[$(($x-1))]}" "${format[$(($x))]}"
else
echo "${format[$x]}" "${format[$(($x+1))]}"
fi
fi
done
fi
fi
done
}