Это похоже на случай, когда 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
. Если Вы хотите, чтобы одно из этих поведений было в другом месте, преобразование разделителя до/после, вероятно, является лучшим вариантом.
.
Для этого нет общего метода. Фильтры - это просто потоки чтения и записи, они не модифицируют поток на месте, и взаимосвязь между ними абсолютно произвольна и зависит от конкретного инструмента. Таким образом, нет пути механизм общего назначения мог бы знать, что что-то было «удалено» из ввода, и, следовательно, сохранить его для копирования в выход.
Но такие инструменты, как 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
.