не может породить, CHMOD на установленном разделе NTFS

Я полагаю, что
в вашем вопросе в конце столбца дата является чем-то нежелательным. В любом случае его легко удалить, если он присутствует. Однако, переходя к основной части, вы можете добиться того, что вы пытаетесь сделать, используя

sort -k 2n filename.txt

. Теперь приведенная выше команда выдаст вывод в отсортированном виде. Теперь приведенная ниже команда должна дать то, что вы ищете.

sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}' 

Пояснение

Команда sort в основном сортирует файл на основе второго столбца, который является датой. Поэтому я изменил ваш входной файл, чтобы проверить, работает ли команда, поскольку во входном файле все данные по умолчанию отсортированы. После этого команда awk печатает все строки, пока мы не встретим конкретное совпадение.

Тестирование

cat filename.txt

647919 2014/01/01
647946 2012/11/30
647955 2011/01/04
648266 2013/12/03
648267 2013/12/03
648674 2013/12/04

Теперь sort -k 2n filename.txt вывод:

647955 2011/01/04
647946 2012/11/30
648266 2013/12/03
648267 2013/12/03
648674 2013/12/04
647919 2014/01/01

Теперь мы удовлетворены тем, что файл отсортирован по второму столбцу. Теперь, чтобы выбрать значения ДО определенной даты,

sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}' 

В приведенном выше примере я получаю все значения до 2013/12/03 . Вывод такой:

647955 2011/01/04
647946 2012/11/30

Нет,
является частью моего файла

Если это так, мы можем немного изменить команду, как показано ниже.

awk '{print $1, substr($2, 1, length($2)-4)}' filename.txt | 
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}' 

Я просто удаляю все теги
из второго столбца, а затем передаю вышеупомянутую команду по конвейеру.

Ссылки

https://unix.stackexchange.com/a/11323/47538

https: //unix.stackexchange.com / a / 83069/47538

3
27.12.2018, 21:59
1 ответ

В NTFS -3G установка пользователя и группы-владельца кажется возможной только при наличии файла UserMapping, содержащего сопоставление для целевого пользователя/группы. Это не очень ясно из документации, но я только что тестирую это, и это то, что происходит.

Если совместимость с существующей установкой Windows не нужна, создайте пустой файл .NTFS-3G/UserMappingна смонтированном разделе и заполните его через:

getRUI4() { od -An -N4 -tu4 /dev/random | tr -d ' '; }
USERMAPPING=/media/NTFS_PARTITION/.NTFS-3G/UserMapping
echo ":users:S-1-5-21-$(getRUI4)-$(getRUI4)-$(getRUI4)-513" | sudo tee -a $USERMAPPING >/dev/null
echo "$(id -un):$(id -gn):S-1-5-21-$(getRUI4)-$(getRUI4)-$(getRUI4)-1001" | sudo tee -a $USERMAPPING >/dev/null

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

Пользователь и группа rootсопоставляются по умолчанию, как и other. Приведенные выше строки создадут сопоставление для группы usersи текущего пользователя. Повторяйте по мере необходимости.

Также в моем случае я монтирую диск с опциями

no_def_opts,allow_other,acl,nodev,nosuid,big_writes,hide_dot_files

Тем не менее, в вашем случае ни один из них вам не нужен, хотя я считаю, что эти параметры лучше, чем по умолчанию, так как в противном случае, например, chown/chmodмолча терпит неудачу в случае ошибок.

3
27.01.2020, 21:21

Теги

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