Linux: вывод tail -f вместе с комментариями в отдельный текстовый файл

Mirando su propia respuesta , está más claro qué es lo que realmente querría hacer.

Aquí está mi propia opinión sobre eso:

#!/bin/sh

dupsfile='/archival/test/sppark/dataindex/staging/duplicates.txt'

indir='/archival/test/sppark/datapdf/staging/renamedTriage'
baddir='/archival/test/sppark/datapdf/staging/badFiles'

dups=$( mktemp )
cut -d '|' -f 4 <"$dupsfile" >"$dups"

for pathname in "$indir"/*; do
    [ ! -f "$pathname" ] && continue

    string=$( printf '%s\n' "${pathname##*/}" | cut -d '_' -f 4 )

    if grep -qxF "$string" "$dups" then
        echo mv "$pathname" "$baddir"
    fi
done

rm "$dups"

La diferencia entre su propia respuesta y esta es que la lista de archivos solo se genera una vez y no una vez por línea en el archivo de datos.

El archivo de datos se analiza de tal manera que su cuarta|-columna delimitada se extrae y se guarda en un archivo temporal. Este archivo se consulta una vez por cada archivo en el directorio que está investigando, usando grep. Si el bit delimitado cuarto_-del nombre de archivo está presente en ese archivo temporal, el archivo se mueve. Quite el echopara mover archivos.

5
03.07.2019, 16:41
2 ответа

Использовать тройник

tail -f /var/log/messages | tee test.txt
-1
27.01.2020, 20:40

Это то, что вам нужно:

sh -c 'tail -f file & cat' | tee file2

Обратите внимание, ваши комментарии дублируются для вывода терминала, когда вы нажимаете ввод.

Он также работает с {...}и (...)вместо sh -c, но тогда tail -fне перестанет работать, когда вы нажмете ctrl + c .

5
27.01.2020, 20:40

Теги

Похожие вопросы