小编cap*_*ser的帖子

修复内部序列号

我在卖方客户和进行货币兑换的交易所之间有一个流程.有两个FIX适配器 - 一个接收来自卖方的消息并将消息提供给流程.另一个FIX引擎从进程中获取消息并将它们以FIX方式发送给交换.

每条FIX消息都有一个由标签34代替的唯一序列号.然而,似乎这些FIX引擎中的每一个都有一个INCOMING SEQUENCE号码(FIX引擎对于对方来说是期望的)和一个OUTGOING SEQUENCE NUMBER(FIX引擎发送给哪一个)反对党).

这些内部序列号是否与标签34无关?

在此配置中,Sell side FIX ENGINE的内部序列号在登录时重置为1,1.FIX ENGINE到交换的内部序列号不会重置为1,1.

我猜这是因为在交易所可能会有GTC订单,两个引擎可能会在成功登录后"沉没"这些静止订单.

但是我不理解标签34和内部序列号之间的关系.

finance protocols fix-protocol

11
推荐指数
1
解决办法
6036
查看次数

在Perl中,@ array [1]和$ array [1]之间有什么区别?

我一直在研究阵列切片,坦率地说,没有看到选择@array[1]和之间的区别$array[1].有区别吗?

#!/usr/bin/perl 
@array = (1,3);
print "\nPrinting out full array..\@array\n";
print "@array\n";
print "\n";
print "Printing out \@array[1]\n";
print "@array[1]\n";
print "Printing out \$array[1]\n";
print "$array[1]\n";
print "\n\n";
Run Code Online (Sandbox Code Playgroud)

arrays perl

8
推荐指数
2
解决办法
763
查看次数

Date :: Calc - 格式化日期和月份

我想在这里做的就是如果日期或月份是一个数字,在它前面添加一个零.现在它打印出日期为201188,我正在寻找20110808.

#!/usr/bin/perl
use Date::Calc qw(Add_Delta_Days); 
my (undef, undef, undef, $day, $month, $year) = localtime(); 
$year +=1900; 
$month +=1; 
($year, $month, $day ) = Add_Delta_Days($year, $month, $day, -3)
if ($month =~ /\d{1}/){
    s/$month/0$month/
}  
if ($day =~/\d{1}/){ 
    s/$day/0$day/
}
print $year,$month,$day; 
Run Code Online (Sandbox Code Playgroud)

perl date

5
推荐指数
2
解决办法
6733
查看次数

在Bash的'while'循环中使用'if'

我将差异结果保存到文件中:

bash-3.00$ cat /tmp/voo
18633a18634
> sashabrokerSTP
18634a18636
> sashatraderSTP
21545a21548
> yheemustr
Run Code Online (Sandbox Code Playgroud)

我真的需要登录:

bash-3.00$ cat /tmp/voo | egrep ">|<"
> sashaSTP
> sasha
> yhee
bash-3.00$
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试迭代下摆并打印名称时,我会收到错误.我只是不明白使用"if"和"while循环"的基本原理.最终,我想使用while循环,因为我想对行做一些事情 - 显然一次while只加载一行到内存中,而不是一次整个文件.

bash-3.00$ while read line; do  if [[ $line =~ "<" ]] ; then  echo $line ; fi ;  done <  /tmp/voo
bash-3.00$
bash-3.00$
bash-3.00$ while read line; do  if [[ egrep "<" $line ]] ; then  echo $line ; fi ;  done    <  /tmp/voo
bash: conditional …
Run Code Online (Sandbox Code Playgroud)

bash loops if-statement while-loop

5
推荐指数
2
解决办法
4万
查看次数

bash将set -x的输出存储到日志文件中

我有一个简单的下载脚本,我用set -x它很好; 我可以看到它执行的每个步骤,我可以识别脚本或下载中的错误:

#!/bin/bash
set -x
#short_date=$(/bin/date +%m%d%y)
short_date=$(/bin/date -d "8 day ago" +%m%d%y)
#long_date=$(/bin/date +%Y%m%d)
long_date=$(/bin/date -d "8 day ago" +%Y%m%d)
scp -v -P 1332 -i /home/casper/.ssh/id_rsa_BANK friendly@192.168.1.10:/home/friendly/transfer/out/EXCHANGE_$short_date.csv /local/casper3/dailymetrics/BANK_$long_date.csv
Run Code Online (Sandbox Code Playgroud)

我想自动完成这项工作.有没有办法将set -x输出保存到日志文件?也许是一个日志文件 - 或者每天不同的日志文件.我不知道哪种方法效果最好.

以下是set -x上述脚本的示例输出.

++ /bin/date +%m%d%y
+ short_date=102814
++ /bin/date +%Y%m%d
+ long_date=20141028
+ scp -v -P 1332 -i /home/casper/.ssh/id_rsa_BANK friendly@192.168.1.10:/home/friendly/transfer/out/EXCHANGE_102814.csv /local/casper3/dailymetrics/BANK_20141028.csv
Executing: program /usr/bin/ssh host 192.168.1.10, user friendly, command scp -v -f /home/friendly/transfer/out/EXCHANGE_102814.csv
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: …
Run Code Online (Sandbox Code Playgroud)

debugging bash non-interactive output

5
推荐指数
1
解决办法
2454
查看次数

awk 格式化打印

我有一个文件,我把它放到维基

Marina Abramovi? 43199842
Vito Acconci 43160016
Bas Jan 80902233
Eija-Liisa Ahtila 43406552
Peggy Ahwesh 37006646
Rita Ackermann 43208993
Chantal Akerman 43272249
Vikky Alexander 80703016
Edward Allington 43387956
Francis Alÿs 43215850
Laurie Anderson 43170307
Carl Andre 43308046
Janine Antoni 43386750
Ida Applebroog 43392256
Nobuyoshi Araki 43387929
Diane Arbus 43394941
Siah Armajani 43312101
Arman smith  80008834
John Armleder 43437177
Richard Artschwager 43371334
Frank Auerbach 43386120
Run Code Online (Sandbox Code Playgroud)

如果我将 Pipes 放在单词和名称之间,当我将它放入 wiki 时,它看起来就像一个漂亮的整齐格式化的表格。我使用了很好用的 awk,但是有时我会花更多的时间来整理我将手动放入管道中的列。

casper@casper-PC ~ ->
 11:16 PM Wed Dec 02$ awk '{$1="|" …
Run Code Online (Sandbox Code Playgroud)

bash awk

5
推荐指数
1
解决办法
9103
查看次数

在程序中使用__DATA__

它一直用在Stack Overflow上,但我真的不理解它,也不能让它工作.然而,它似乎是一个非常好的测试工具.

如何让脚本将以下所有内容读__DATA__入文件句柄?我尝试了几种方法来阅读它,而不是在外部文件上添加.数据是合法的,它来自AutoSys JIL文件中的作业定义.

#!/efs/dist/perl5/core/5.10/exec/bin/perl

use strict;
use warnings;

my ( $job, $machine, $command, @line_stat );

#these 4 lines below do not read in data to filehandle
#my $data = do  {
#   local $/;
#   <DATA>;
#} ;

my $data = <DATA>;    # does not work either

open( my $fh, '<:encoding(UTF-8)', $data )
        or die "Could not open file '$data' $!";

my $count = 0;

while ( my $line = <$fh> ) {

    #chomp $line;
    if ( …
Run Code Online (Sandbox Code Playgroud)

perl filehandle autosys

5
推荐指数
1
解决办法
824
查看次数

bash - pipe创建一个子shell

所以这个读取是在管道之后执行的,这意味着echo的输出被读入str - 但由于它是在管道之后,因此str的内容现在位于父shell无法读取的子shell中.我的问题是 - str的内容会发生什么?管道是否创建子shell,然后一旦内容被读入str,父进程就会终止子进程并删除str - 或者str的内容是否存在于shell之外的某个地方.就像我们如何看待子壳中的内容一样?我们可以从父shell访问子shell吗?

echo hello | read str
echo $str
Run Code Online (Sandbox Code Playgroud)

bash subshell

5
推荐指数
2
解决办法
581
查看次数

使用set -o vi作为第一个交互式命令的ssh

我有一个用于登录服务器的小脚本.我换了钥匙.adminstirator设置的默认值为emacs.我有点沉迷于vi键绑定.我无法以自己身份登录,我必须以群组用户身份登录.大部分时间我做的第一件事就是输入set -o vi.我忘了并开始使用vi键绑定,但它们工作,然后我必须使用emacs键绑定.我的肌肉记忆搞砸了.当我使用登录脚本登录时,自动设置密钥绑定会很棒.

无论如何我试图将set命令添加到我的ssh脚本中.

这个不起作用.

#!/bin/bash
ssh -q -T bighost <<EOF
set -o vi
EOF
~
Run Code Online (Sandbox Code Playgroud)

这个不起作用

#!/bin/bash
ssh bighost bash -c "'
set -o vi
'"
Run Code Online (Sandbox Code Playgroud)

这让我ssh到主机,但vi没有设置为键绑定.

#!/bin/bash
ssh -t bighost "$(< set -o vi )"




corp_user@bighost:~$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off …
Run Code Online (Sandbox Code Playgroud)

vi ssh bash keyboard-shortcuts

4
推荐指数
2
解决办法
733
查看次数

bash 变量插值用连字符或下划线分隔变量

这是一个简单的脚本,只是为了查看文件是否已下载。在这个脚本中, find 命令总是计算为零——即使它没有找到任何东西。所以我把它注释掉了。

filename="day_CTRwFEES_hoo01M_"我不得不下划线添加到该文件名末尾。

使用下划线$filename_$yesterday.CSV将两者分开不起作用。- 我不得不去掉下划线,将它添加到文件名中,然后组合变量以使其像这样工作 - $filename$yesterday

如何在不将下划线添加到变量末尾的情况下使其工作$filename

#!/bin/bash
set -x
dayofweek=$(/bin/date +%w)
today=$(/bin/date +%Y%m%d)
yesterday=$(/bin/date -d "1 day ago" +%Y%m%d)
friday_morning=$(/bin/date -d "3 days ago" +%Y%m%d)
filename="day_CTRwFEES_hoo01M_"

#if find /data/today/ -type f -name "$filename_$yesterday.CSV" ; then
if ls "/data/today/$filename$yesterday.CSV" ; then
    echo "successful"
else
    echo "$filename$yesterday.CSV was not downloaded, please check." | mail -s "$filename$yesterday.CSV not downloaded" casper@big_bank.com
    fi

casper@good_host5981dap:~/walt/morning_checks$ ./check_day_CTRwFEES_hoo01M
++ /bin/date +%w
+ dayofweek=5
++ /bin/date +%Y%m%d
+ today=20141024 …
Run Code Online (Sandbox Code Playgroud)

variables bash string-interpolation

4
推荐指数
1
解决办法
2039
查看次数