Дополнительная информация, например, какую ОС Unix вы используете(Ubuntu, Fedora, Debian)или тип микрофона(динамический, конденсаторный)и способ его подключения к вашей звуковой карте(Разъем 3,5 мм например, разъем для наушников для MP3-плееров, штекер 1/4 дюйма, USB, кабель XLR с интерфейсом или без него?)было бы неплохо увидеть. А пока...
У меня была противоположная проблема с Audacity и моим динамическим микрофоном Audio Technica 2005USB. Выигрыша было почти совсем ничего! Начиная с закрытого Audacity, после подключения микрофона я щелкнул значок шестеренки Ubuntu 16.04 и нажал System_Settings>Sound
.(Здесь нам было бы полезно узнать вашу ОС, но не беспокойтесь. Если вы достаточно умны, чтобы использовать Linux, вы достаточно умны, чтобы понять, как добраться до настроек звука вашей ОС! :-D)В окне настроек звука я переключил Input
на только что подключенный микрофон. Сразу же я увидел гистограмму в виде аналогового измерителя VU -, показывающую интенсивность текущего звука, подаваемого в микрофон. После произнесения "ТЕСТ...1. 2. 3" в микрофон при четком, нормальном уровне речи, на гистограмме загорались только около двух из 30 полос гистограммы. Над гистограммой находился ползунок, помеченный Input Volume
. корректировки, произнося «ТЕСТ... 1. 2. 3.» в микрофон, я обнаружил, где гистограмма загорается в диапазоне от 75 до 80. Затем я открыл Audacity и убедился, что вход для Audacity выбран как(Кстати, :Если у вас есть наушники или динамики, выключите их, чтобы не повредить слух!)Говоря "ТЕСТ... 1. 2. 3." на звуковой панели Audacity прыгает и остается в красном, пока я говорил. Поэтому я прыгал туда и обратно между настройками звука моей ОС и Audacity, регулируя входную громкость до «ТЕСТ... 1. 2. 3»., время от времени погружаясь в красную зону на индикаторе уровня записи Audacity в верхней части окна Audacity. Это называется «настройка уровня микрофона». После того, как уровень микрофона был установлен, я записал несколько царапин ces и воспроизвел его. Звучало нормально!
Попробуйте повозиться с настройками звука и посмотрите, улучшит ли качество звука уменьшение входной громкости вашей системы. Если нет, дайте нам больше информации. Кто-то еще может иметь представление о причудах, связанных с вашей конкретной ОС, звуковой картой или системой.
Используя достаточно новую версию Миллера
$ mlr --csvlite --allow-ragged-csv-input --fs '|' stats1 -a sum -f SAL file.txt
SAL_sum
155
(последняя версия требуется только потому, что ваш ввод рваный т. е. имеет завершающий пустой столбец без соответствующего имени в заголовке ). Вы можете легко суммировать несколько столбцов в Miller, передав их имена в виде списка, разделенного запятыми, в параметр -f
:
... stats1 -a sum -f SAL,COST,PER,TAG...
Аналогично с GNU Datamash
$ datamash -Ht '|' sum SAL,COST,PER,TAG < file.txt
sum(SAL)|sum(COST)|sum(PER)|sum(TAG)
155|162|95|210
Черпая вдохновение изhttps://stackoverflow.com/a/32616101:
$ col=SAL
$ colnum=$(awk -v RS='|' '/'$col'/{ print NR; exit}' testfile)
$ awk '{FS="|"}{s+='$colnum'}END{print s}' testfile
18
Хитрость заключается в заключении в кавычки. :Переменные находятся вне одинарных -кавычек.
Это легко завернуть в скриптsumcols.sh
:
#!/bin/bash
FILE="$1"
COLUMNS="${@:2}"
for col in $COLUMNS; do
colnum=$(awk -v RS='|' '/'$col'/{ print NR; exit}' $FILE)
awk '{FS="|"}{s+='$colnum'}END{print "'$col' ", s}' $FILE
done | column -t
Вызовите его с файлом для обработки в качестве первого позиционного параметра и следуйте за столбцами для обработки. Например.:
$./sumcols.sh testfile SAL COST
SAL 18
COST 24
Использованиеawk
(и потеря пробелов во входной строке)
myv='SAL|COST|PER|TAG'
awk -v ar="$myv" '
BEGIN{FS="|"; getline; for (i=1;i<=NF;i++) {if ($i ~ ar) head[i]=0;title[i]=$i}}
NF>1{for (h in head) head[h]+=$h}
END{for (h in head) print title[h]":\t"head[h]}
' file
Это предполагает, что сопоставление регулярных выражений уникально. Если нет то...
myv='SAL|COST|PER|TAG'
awk -v ar="$myv" '
BEGIN{FS="|"; getline; for (i=1;i<=NF;i++) head[$i]=i; split(ar,titles,"|")}
NF>1{for (i=1; i<=NF; i++) val[i]+=$i}
END{for (t in titles) print titles[t]":\t"val[head[titles[t]]]}
' file
Выход
SAL: 155
COST: 162
PER: 95
TAG: 210