Команда AWK обрезает имя файла

Нет, когда терминал исчезает, вывод также исчезает. Некоторые из них могут еще какое-то время оставаться в оперативной памяти, некоторые могли быть сохранены в журналах из-за различных настроек ведения журнала, но по существу они потеряны. Это сделано намеренно. Если бы информация была зарегистрирована, она быстро заполнила бы ваш диск (символы действительно накапливаются, если вы используете оболочку для всего ), и она, вероятно, содержала бы по крайней мере некоторую конфиденциальную информацию. Однажды я попытался установить неограниченный буфер прокрутки терминала GNOME. Вскоре после этого моя машина начала замедляться. Терминал использовал всю мою оперативную память!

Вы можете настроить ведение журналов, используя что-то вроде exec > /tmp/stdout.log 2> /tmp/stderr.logв вашем ~/.bashrc (непроверенном )и, например, logstashдля ротации ваших журналов,но у него по-прежнему будет фундаментальная проблема сохранения конфиденциальной информации в течение некоторого времени.

Вместо этого большинство людей полагаются на файл истории оболочки, например ~/.bash _history, в котором хранятся команды, чтобы вы могли воспроизвести результат.

0
15.12.2020, 09:13
2 ответа

Вероятно, проще всего это сделать с помощью вырезания:

printf '%s\n' "$fileName" | cut -d- -f3-5

Это просто устанавливает разделитель в «-» и извлекает поля 3 -5.

Предполагается, что имя файла не содержит пробельных символов.

2
18.03.2021, 22:42

Кажется, вы хотите удалить две первые и три последние строки, разделенные тире(-)из значения $fileName. Наиболее эффективно это делается с помощью замены параметра ("efficient" = не использует никакую внешнюю программу, только оболочку ).

$ fileName=20201211-v1-ABC144_newrecords_2020-12-10_12-51-32-000_2444_511
$ fileName=${fileName#*-*-}
$ echo "$fileName"
ABC144_newrecords_2020-12-10_12-51-32-000_2444_511
$ fileName=${fileName%-*-*-*}
$ echo "$fileName"
ABC144_newrecords_2020-12-10_12

Подстановкой ${fileName#*-*-}будет значение $fileName, но с удаленным битом, соответствующим шаблону *-*-в начале. Аналогичным образом ${fileName%-*-*-*}будет $fileName, но с удаленным битом, соответствующим -*-*-*в конце.

2
18.03.2021, 22:42

Теги

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