小编agc*_*agc的帖子

将Unix`cal`输出转换为乳胶表代码:单线解决方案?

试图实现以下目标困扰我的想法:

将Unix cal输出转换为乳胶表代码,使用短而甜的单行(或几行).

例如cal -h 02 2012 | $magicline应该屈服

Mo      &Tu     &We     &Th     &Fr     \\
        &       & 1     & 2     & 3     \\
 6      & 7     & 8     & 9     &10     \\
13      &14     &15     &16     &17     \\
20      &21     &22     &23     &24     \\
27      &28     &       &       &       \\
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能想出的唯一合理的解决方案是

cal -h | sed -r -e '1d' -e \
  's/^(..)?(...)?(...)?(...)?(...)?(...)?(...)?$/\2\t\&\3\t\&\4\t\&\5\t\&\6\t\\\\/'
Run Code Online (Sandbox Code Playgroud)

......我真的很努力.关于它的好处是,它简单易懂,易于理解,它是"不灵活"(它无法应付8周的一周)和一点点冗长.我正在寻找可供学习的替代解决方案;-)

编辑:找到另一个似乎可以接受的

cal -h | tail -n +2 |
    perl -ne 'chomp;
        $,="\t&";
        $\="\t\\\\\n";
        $line=$_; …
Run Code Online (Sandbox Code Playgroud)

bash shell perl awk sed

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

bash - 以十六进制表示法输入字符到标准输入

我想非ASCII字符(写0xfe0xed等),以一个程序的标准输入。

有很多类似的问题,但我没有找到答案,因为:

  • 我想写单字节字符,而不是 unicode 字符
  • 我不能通过管道输出echo什么的

在 OS X¹ 上,您可以测试:

nm - -
Run Code Online (Sandbox Code Playgroud)

我想将目标文件魔术字节(例如0xfeedface)写入nm使用标准输入,以便我可以看到它的行为方式并且可以重新编码。

如果我使用管道,则第二个参数-(即stdin)将永远不会匹配任何字节,因为所有标准输入都将转到第一个。当使用终端而不是管道时,我可以输入Ctrl + D第一个“关闭”,第二个开始读取。

我尝试使用Ctrl + Shift + UOS X 的 Unicode 十六进制输入,但它不起作用——我无法用它写出所需的字符。

我也尝试过使用剪贴板,pbcopy但它无法读取/粘贴非 ASCII 或非 unicode 字符。

我怎样才能实现我的目标?

不要犹豫编辑,因为这是一个难以表达的问题。

¹nm在 linux 上不处理stdin

bash hex stdin character-encoding

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

在 sed 命令中使用管道中的 STDIN 来替换文件中的值

我有一个命令来执行一系列命令,这些命令生成可变输出字符串,例如123456. 我想将其通过管道传输到一个sed命令,替换 csv 文件中的已知字符串,如下所示: Fred,Wilma,Betty,Barney

但是,下面的命令不起作用,并且我没有找到任何其他使用管道值作为替换变量的参考。

如果 csv 中的值是随机顺序的并且我总是想更改第二个值,则此代码如何更改?

示例代码:

find / -iname awk 2>/dev/null | sha256sum | cut -c1-10 > test.txt | 
sed -i -e '/Wilma/ r test.txt' -e 's/Wilma//' input.csv
Run Code Online (Sandbox Code Playgroud)

input.csv 的内容应变为:Fred,0d522cd316,Betty,Barney

linux bash shell sed

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

如何在unix中删除csv中的空格

您好我想使用awksed删除CSV文件中的逗号之前的空格空格.示例输入文件将是:

"abcd"  ,"test 123"
Run Code Online (Sandbox Code Playgroud)

输出文件:

"abcd","test 123"
Run Code Online (Sandbox Code Playgroud)

只删除逗号前的空格,但不删除单词之间的空格.在unix中寻找修剪功能.请帮忙.非常感谢你.

unix

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

将wget输出(流化的shell脚本)传递给bash,但带有额外的参数

我想通过下载特定的文件wget,将其作为bash脚本传递,并且一口气也为其提供参数。

就我而言,脚本存储在: https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh

我试过了:

wget -O - https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh | bash
Run Code Online (Sandbox Code Playgroud)

但结尾为:

Error: you need to provide a host and port to test.
Usage:
    bash host:port [-s] [-t timeout] [-- command args]
    -h HOST | --host=HOST       Host or IP under test
    -p PORT | --port=PORT       TCP port under test
                            Alternatively, you specify the host and port as host:port
    -s | --strict               Only execute subcommand if the test succeeds
    -q | --quiet                Don't output any status messages
    -t …
Run Code Online (Sandbox Code Playgroud)

bash wget

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

如何在Forth中转储单词?

目的是在字典中创建一个Forth单词,然后打印出该单词的内存内容。第一步很容易。这个: main词的创建方法与教程中所述相同。创建单词后,字典指针将移至下一个位置,因此我必须从中减去一些项目,现在可以转储创建单词的内存区域了:

\ create a dummy routine
: main 1 dup + . ;

\ put dictionary pointer to the stack
\ and subtract 50 indizies
dp 50 - 

\ print out 20 cells to the screen from dp-50 until dp+50
\ but where is my newly created routine ": main"?
100 dump

bye
------
gforth "a.fs"

7F81DF443FC6: 00 00 20 17  12 AF 60 55 - 00 00 04 00  00 00 00 00  .. ...`U........
7F81DF443FD6: …
Run Code Online (Sandbox Code Playgroud)

forth gforth

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

bash shell 脚本中的模函数

for ((i=0; i<lenPT; i++)) do 
    if [[ $(($lenPT % 2))  == 0]] then
        P[i] = "$((K [0] * arrT[i] + K[2] * arrT[i+1]))" 
    else
        P[i] = "$((K[1]*arrT[i-1]+K[3]*arrT[i]))"
    fi
done
Run Code Online (Sandbox Code Playgroud)

我收到错误消息,说“条件表达式中的语法错误“'then' 附近的语法错误”。我的条件语句有什么错误?

linux bash shell

3
推荐指数
2
解决办法
7746
查看次数

是否有用于堆栈效果的 Forth 静态分析器?

我正在因导致堆栈溢出的编程错误而失去生产力。

例如,如果我drop在一个IF ELSE THEN分支中、一个循环中省略 a并且出现堆栈溢出,我通常必须重新启动我的开发环境。我在iCEstick上使用SwapForth

是否存在预测编译字堆栈结果的静态分析器?

像检查代码是否始终与 ( nnn nnn -- f ) 文档匹配的自动化工具?

forth

3
推荐指数
1
解决办法
222
查看次数

多个数据库和集合mongodump

我有这样的事情:

dbs=$(mongo --quiet --eval "db.getMongo().getDBNames()" --host exemple.com | \ 
            grep '"' | tr -d '"' | tr -d ',')

for db in $dbs; do
    cols=$(mongo --quiet --eval "print(db.getCollectionNames())" $db \
                  --host exemple.com | tr ',' ' ')
    for col in $cols; do
        mongodump --host example.com -q "{_id:{\$gt:$oid}}" \
                   -d $dbs -c $col --out /data/
   done
done
Run Code Online (Sandbox Code Playgroud)

我越来越:

不允许位置参数

如何mongodump在所有数据库中使用所有集合?

bash mongodb mongodump

3
推荐指数
1
解决办法
5766
查看次数

为什么 Forth 为每个变量保留两个单元格?

在试图找出 Forth 如何管理字典(以及一般内存)时,我遇到了这个页面。熟悉 C 语言后,我对指针的概念没有任何问题,并且我认为我对所有内容的理解都是正确的。然而,在页面的最后有几个练习,在这里我注意到一些奇怪的事情。

练习9.4,假设DATE已被定义为a VARIABLE,询问之间的区别是什么

DATE .
Run Code Online (Sandbox Code Playgroud)

' DATE .
Run Code Online (Sandbox Code Playgroud)

练习9.5使用用户变量执行相同的操作BASE

根据提供的答案,两个短语将给出相同的结果(也带有BASE)。然而,使用Win32Forth尝试此操作,得到的结果相差 4 个字节(1 个单元格)。这是我所做的:

here . 4494668  ok
variable x  ok
x . 4494672  ok
' x . 4494668  ok
Run Code Online (Sandbox Code Playgroud)

创建另一个变量会产生类似的结果:

variable y  ok
y . 4494680  ok
' y . 4494676  ok
Run Code Online (Sandbox Code Playgroud)

因此,看起来每个变量不仅仅是一个单元格(用于值),而是两个单元格。变量本身指向实际值的存储位置,并检索执行令牌处的内容(使用' x ?)给出0040101F这两个变量。

对于练习 9.5,我的结果是:

base . 195F90  ok
' base …
Run Code Online (Sandbox Code Playgroud)

forth win32forth

3
推荐指数
1
解决办法
463
查看次数

标签 统计

bash ×6

forth ×3

shell ×3

linux ×2

sed ×2

awk ×1

character-encoding ×1

gforth ×1

hex ×1

mongodb ×1

mongodump ×1

perl ×1

stdin ×1

unix ×1

wget ×1

win32forth ×1