Включают ли списки `lsof` несинхронизированную / отложенную запись?

Это похоже на случай, когда cut будет лучше, чем awk:

cut -d , -f1-20 Precipitation.csv > aaa1
cut -d , -f21-40 Precipitation.csv > aaa2
cut -d , -f41-100 Precipitation.csv > aaa3

-d , указывает разделитель (запятая, так как вход называется CSV, но вы можете это изменить). -f N-M выбирает поля N через M включительно, чтобы быть в выводе. Если в какое-либо поле будут вставлены запятые, то он сломается - в этом случае, вероятно, нужен реальный парсер CSV, хотя если это действительно невозможно, то можно что-то взломать вместе.

В выводе будет использован тот же самый разделитель, что и во входе. GNU cut поддерживает опцию --output-delimiter=STRING для установки другого разделителя, но я не думаю, что кто-то другой это делает. В FreeBSD cut включена опция -w split-by-whitespace, которая ближе к тому, что по умолчанию делает awk. Если Вы хотите, чтобы одно из этих поведений было в другом месте, преобразование разделителя до/после, вероятно, является лучшим вариантом.

.

1
20.03.2017, 12:04
1 ответ

Для этого нет общего метода. Фильтры - это просто потоки чтения и записи, они не модифицируют поток на месте, и взаимосвязь между ними абсолютно произвольна и зависит от конкретного инструмента. Таким образом, нет пути механизм общего назначения мог бы знать, что что-то было «удалено» из ввода, и, следовательно, сохранить его для копирования в выход.

Но такие инструменты, как awk и perl , могут записывать в произвольные файлы самостоятельно, так что они могут делать это с явным кодом:

awk '/regexp/ { print } !/regexp/ { print > "non-matching.txt" }' > matching.txt
-121--166239-

Четвертый столбец (столбец комментариев) фактически является столбцом, как вы сказали, который отображает IP-адрес машины, через которую пользователь вошел в систему. Значение ': 0' заключается в том, что IP-адрес компьютера - localhost и ничего другого. Это означает, что пользователь вошел в систему с того же компьютера, на котором установлена ОС, но не с любого другого компьютера в сети

Изменить: я должен сказать, что этот сайт не работает так, как вы его использовали. Вы должны были предпринять тщательные попытки исследования, а затем вы должны были разместить этот вопрос. Простой поиск в Google дал мне это http://linoxide.com/linux-command/linux-who-command/

-121--254343-

Он считается закрытым и не будет показан.

Если бы он посчитал его открытым, какой дескриптор файла вы бы ожидали, что он сообщит? При закрытии файла дескриптор файла удаляется.

Я не думаю, что есть какая-либо команда, которая покажет, есть ли буферизованные записи в файл. Но как упоминалось в другом вопросе, команда eject на съемном носителе синхронизирует его перед возвращением. При завершении работы системы также будут синхронизированы все файлы.

Поэтому физически не следует удалять устройство без использования команды eject .

2
27.01.2020, 23:36

Теги

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