У меня возникают довольно необычные проблемы с использованием grep в скрипте bash. Ниже приведен пример кода сценария Баш, который я использую, который показывает поведение:Проблемы с командой Grep в скрипте bash
UNIQ_SCAN_INIT_POINT=1
cat "$FILE_BASENAME_LIST" | uniq -d >> $UNIQ_LIST
sed '/^$/d' $UNIQ_LIST >> $UNIQ_LIST_FINAL
UNIQ_LINE_COUNT=`wc -l $UNIQ_LIST_FINAL | cut -d \ -f 1`
while [ -n "`cat $UNIQ_LIST_FINAL | sed "$UNIQ_SCAN_INIT_POINT"'q;d'`" ]; do
CURRENT_LINE=`cat $UNIQ_LIST_FINAL | sed "$UNIQ_SCAN_INIT_POINT"'q;d'`
CURRENT_DUPECHK_FILE=$FILE_DUPEMATCH-$CURRENT_LINE
grep $CURRENT_LINE $FILE_LOCTN_LIST >> $CURRENT_DUPECHK_FILE
MATCH=`grep -c $CURRENT_LINE $FILE_BASENAME_LIST`
CMD_ECHO="$CURRENT_LINE matched $MATCH times," cmd_line_echo
echo "$CURRENT_DUPECHK_FILE" >> $FILE_DUPEMATCH_FILELIST
let UNIQ_SCAN_INIT_POINT=UNIQ_SCAN_INIT_POINT+1
done
Во многих случаях, когда оглавлению для текущей строки в списке местоположения файла, он не положил никакого выхода к току dupechk, несмотря на то, что определенную совпадение с текущей строкой в списке местоположений файлов (я запускал команду в терминале без проблем).
Я порылся по интернету, чтобы узнать, было ли у кого-либо другое подобное поведение, и до сих пор все, что я нашел, это то, что он связан с буферизированными и небуферированными выходами других команд, работающих до команды grep в Bash script ....
Однако никто, кажется, не нашел решение, поэтому в основном я спрашиваю вас, ребята, если вы когда-либо сталкивались с этим, и любая идея/советы/решения этой проблемы ...
С уважением
Пол
Что вы точно пытаетесь сделать? Мы могли бы предложить лучший способ сделать это. –
У меня очень длинный сценарий bash, который должен выполнять операцию поиска дубликатов файлов в заданной директории. Эта часть скрипта находит дубликаты и печатает их в файле. Стоит отметить, что я делаю это для части университетской курсовой работы, и команда awk не разрешена. – paultop6
Команда awk не разрешена, но sed/grep есть? lol – ghostdog74