Всегда есть опция awk. Замените переменную string содержимым. Однако это не изменение на месте. Лично я склонен не делать изменений на месте. Это, безусловно, личное предпочтение. Две вещи, -v означает, что переменная в awk и переменная n используются здесь для сопоставления номера строки, эффективно NR == 1. Вы можете использовать это несколькими способами, просто изменив значение n и s.
string="My New first line"; awk -v n=1 -v s="$string" 'NR == n {print s} {print}' file.source > file.target
Пример:
% cat file.source
First Line
Second Line
Third Line
% string="Updated First Line"; awk -v n=1 -v s="$string" 'NR == n {print s} {print}' file.source > file.target; cat ./file.target !698
Updated First Line
First Line
Second Line
Third Line
См. этот ответ. В основном вы можете определять разрешения при установке устройства. В вашем случае вы бы сделали что-то вроде:
sudo mount -t vfat -o rw,user,umask=000 /path/to/device /path/to/mount/dir
Для постоянного изменения вы можете добавить это в свой /etc/fstab:
Найти UUID (универсальный уникальный идентификатор) вашего устройства, используя sudo blkid. Добавьте линию монтирования в /etc/fstab:UUID=your-uuid /path/to/mount/dir vfat rw,auto,user,umask=000 0 0