Точный синтаксис будет зависеть от точного ввода. Если поле значения всегда начинается <space><dollar>
, мы можем использовать оператор awk:
awk -F: '$2 ~ /^ \$/ { a[$1]+=substr($2,3)} END {for (b in a) { print b"$"a[b]}}'
например,
awk -F: '$2 ~ /^ \$/ { a[$1]+=substr($2,3)} END {for (b in a) { print b"$"a[b]}}' testfile.txt
3/3/16 $25
2/2/15 $14
1/1/15 $15
Обратите внимание, :, если символ-разделитель действительно |
, а не :
, вам нужно будет сделать awk -F'|'...
.
Это работает следующим образом:
$2 ~ /^ \$/
--для каждой строки, где начинается второе поле<space><dollar>
{ a[$1]+=substr($2,3)}
--Добавить содержимое второго поля (, убрав первые два символа ), в массив, проиндексированный по дате
END {for (b in a) { print b"$"a[b]}}'
--когда файл закончится, пройдемся по всем найденным датам и выведем итог.
Таким образом, массив a
индексируется по дате и содержит сумму значений, просмотренных для этой даты.
Вы монтируете его как файловую систему nfs , зная, что это локальный диск.
Просто замените nfs
наntfs
:правильный drive format
или filesystem type
в файле fstab.
По некоторым причинам вы указываете nfs
вместо ntfs-3g
.
Вот как я монтирую разделы NTFS в Linux:
UUID=0123456789ABCDEF /mnt/win ntfs-3g defaults,noatime,nofail,uid=1000,fmask=0133,dmask=0022,nls=utf8
noatime - to disable updating last access time on reading files
nofail - in case the device is not present on boot
nls=utf8 - to properly convert NTFS filenames to Linux
fmask/dmask - to prevent other users from modifying files/folders