Вот один способ, которым Вы могли сделать это с awk (pad.awk):
# Determine length of longest line
FNR == NR { if(length > M) M = length; next }
# Pad each line according current line length (L) and longest line (M)
{
L = M - length;
for(i=1; i<=int(L/2); i++)
printf "."
printf "%s", $0
for(i=1; i<=int(L/2+.5); i++)
printf "."
printf "\n"
}
Выполните его как это:
awk -f pad.awk infile infile
Вывод:
.aaa.
bbbb.
..c..
ddddd
.ee..
Если Вы имеете туалет GNU в наличии, самая длинная строка может более эффективно быть найдена с wc -L
. Таким образом, отбросьте первую строку pad.awk и выполните awk как это:
awk -f pad.awk M=$(wc -L < infile) infile
Я пропустил бит о строках заполнения пространства. Так или иначе это довольно просто, чтобы позволить, чтобы переменное дополнило символ. Вот полный пример на основе идей сверху:
# Set padding character to the default (" ") if it was not set with -v
# Set ORS to "" to make printing easier
BEGIN { if(D == "") D = " "; ORS = "" }
# Pad each line according current line length (L) and longest line (M)
{
L = M - length;
for(i=1; i<=int(L/2); i++)
print D
print $0
for(i=1; i<=int(L/2+.5); i++)
print D
print "\n"
}
Пример:
awk -v M=$(wc -L < infile) -v D=_ -f pad.awk infile
Вывод:
_aaa_
bbbb_
__c__
ddddd
_ee__
Если вы добавите переключатель -t
, вы можете указать, сколько писателей вы хотите использовать в iozone
. Из IOzone PDF .
-t #
Run Iozone in a throughput mode. This option allows the user to specify how
many threads or processes to have active during the measurement.
$ ./iozone -i 0 -t 2
Children see throughput for 2 initial writers 1= 433194.53 KB/sec
Parent sees throughput for 2 initial writers = 7372.12 KB/sec
Min throughput per process = 0.00 KB/sec
Max throughput per process = 433194.53 KB/sec
Avg throughput per process = 216597.27 KB/sec
Min xfer = 0.00 KB
Children see throughput for 2 rewriters = 459924.70 KB/sec
Parent sees throughput for 2 rewriters = 13049.40 KB/sec
Min throughput per process = 225610.86 KB/sec
Max throughput per process = 234313.84 KB/sec
Avg throughput per process = 229962.35 KB/sec
Min xfer = 488.00 KB
отрывок - 10 примеров iozone для измерения производительности дискового ввода-вывода в Linux
Чтобы выполнить iozone в режиме пропускной способности, используйте параметр -t. Вам следует также укажите количество потоков, которые должны быть активны во время этого тест.
В следующем примере выполняется тест пропускной способности iozone для пишет, используя 2 потока. Обратите внимание, что вы не можете комбинировать опцию -a с опцией -t.