Podrías hacer esto con el comando find
y la opción exec
-algo como esto:
find. -type d \( ! -name. \) -exec bash -c '
dirname=$(basename "{}") &&
cd "{}" &&
echo "{}" > original_filenames.txt &&
ls | grep -Fv original_filenames.txt >> original_filenames.txt
' \;
Aquí hay una publicación de StackOverflow que puede resultarle útil:
Попробуйте это,
Печатать только слово, содержащее s
echo $TEXT | grep -o '[0-9]*s'
5s
7s
Печатать только слова, содержащие s, m или h
echo $TEXT | grep -o '[0-9]*[smh]'
5s
3m
1h
7s
5m
3h
From man:
grep -o
Печатать только совпадающие (не -пустые )части совпадающей строки, причем каждая такая часть находится в отдельной строке вывода. На ваш обновленный вопрос:
Для печати последнего поля, если оно имеетs
awk '$NF~/s/{print $NF}' FILE.txt
5s
7s
Для печати последнего поля, если оно имеет s
, или h
, или m
awk '$NF~/s/ || $NF~/m/ || $NF~/h/ {print $NF}' FILE.txt
5s
3m
1h
7s
5m
3h