Следующий сценарий sed
предполагает, что разделитель полей является космосом. Если это вкладка, измените пространство в обеих командах s///
sed на \t
.
Первая строка имеет идентификатор
, вторая и последующие строки имеют $ num
.
$ num=1
$ sed -e "1 s/$/ id/ ; 2,$ s/$/ $num/" input.txt
A B C D E id
2 79 56 SD L 1
1 09 67 JK S 1
9 60 37 KD G 1
0 10 47 SO E 1
-121--145312- С помощью zsh
:
autoload zmv # best in ~/.zshrc
zmv '*(#q^/)' '${(L)f}'
переименование файлов любого типа, кроме каталога. Или:
zmv '*(#q.)' '${(L)f}'
Переименование только обычных файлов. Чтобы включить скрытые файлы, добавьте квалификатор D
glob.
Пример (использование -n
для сухого прогона):
$ ls -alQF
total 132
drwxr-xr-x 3 stephane stephane 4096 Oct 27 09:11 "."/
drwxr-xr-x 533 stephane stephane 122880 Oct 27 09:11 ".."/
drwxr-xr-x 2 stephane stephane 4096 Oct 27 09:07 "DIR"/
lrwxrwxrwx 1 stephane stephane 3 Oct 27 09:07 "DIR-LINK" -> "DIR"/
prw-r--r-- 1 stephane stephane 0 Oct 27 09:07 "FIFO"|
-rw-r--r-- 1 stephane stephane 0 Oct 27 09:11 ".HIDDEN FILE"
-rw-r--r-- 1 stephane stephane 0 Oct 27 09:07 "HOLIDAYS IN МОСВА\nRED SQUARE.JPG"
lrwxrwxrwx 1 stephane stephane 23 Oct 27 09:08 "MY-RÉSUMÉ.PDF" -> "STÉPHANE'S RÉSUMÉ.PDF"
-rw-r--r-- 1 stephane stephane 0 Oct 27 09:07 "--READ-ME--.TXT"
srwxr-xr-x 1 stephane stephane 0 Oct 27 09:09 "SOCKET"=
-rw-r--r-- 1 stephane stephane 0 Oct 27 09:07 "STÉPHANE'S RÉSUMÉ.PDF"
$ zmv -n '*(#q^/)' '${(L)f}'
mv -- DIR-LINK dir-link
mv -- FIFO fifo
mv -- HOLIDAYS\ IN\ МОСВА$'\n'RED\ SQUARE.JPG holidays\ in\ мосва$'\n'red\ square.jpg
mv -- MY-RÉSUMÉ.PDF my-résumé.pdf
mv -- --READ-ME--.TXT --read-me--.txt
mv -- SOCKET socket
mv -- STÉPHANE\'S\ RÉSUMÉ.PDF stéphane\'s\ résumé.pdf
$ zmv -n '*(#q.)' '${(L)f}'
mv -- HOLIDAYS\ IN\ МОСВА$'\n'RED\ SQUARE.JPG holidays\ in\ мосва$'\n'red\ square.jpg
mv -- --READ-ME--.TXT --read-me--.txt
mv -- STÉPHANE\'S\ RÉSUMÉ.PDF stéphane\'s\ résumé.pdf
$ zmv -n '*(#qD.)' '${(L)f}'
mv -- .HIDDEN\ FILE .hidden\ file
mv -- HOLIDAYS\ IN\ МОСВА$'\n'RED\ SQUARE.JPG holidays\ in\ мосва$'\n'red\ square.jpg
mv -- --READ-ME--.TXT --read-me--.txt
mv -- STÉPHANE\'S\ RÉSUMÉ.PDF stéphane\'s\ résumé.pdf
Посмотрите, как некоторые из них могут разорвать некоторые символические связи.
Вы можете писать в файл только после того, как вы его открыли. Когда вы открываете его, выполняются проверки разрешений. Теоретически можно утверждать, что для запроса на чтение -дескриптора файла записи состояние квоты может быть проверено, но поскольку вам нужен доступ на запись для усечения файла, а квота никогда не должна препятствовать освобождению пространства, я предполагаю, что это не так..
Таким образом, согласно порядку open()
и write()
проверка разрешений всегда должна быть на первом месте.