要求
Intranet Web应用程序需要每天打印数以万亿计的收据.Chrome或Firefox中的静音打印效果很好---考虑到这部分已经解决了.
美中不足
因此我们在chrome或firefox中使用命令行选项来启用快速静默打印,但这些是常规工作站,而不是POS.他们有常规的网络打印机,除收据打印外.
在许多配置中,Firefox和Chrome将使用"最后使用过的打印机",但这是不可靠的,并且在某些配置中不起作用...例如,Linux.Firefox不尊重更改打印命令,甚至也不指定print_printer.
问题
是否可以在命令行上指定打印机:
例如.,
firefox -no-remote -P webapp --print-target receipt
Run Code Online (Sandbox Code Playgroud)
要么 -
chrome --kiosk --kiosk-printing receipt
Run Code Online (Sandbox Code Playgroud)
是否有插件,扩展程序或应用程序会强制FF或Chrome忽略特定配置文件(或站点)的系统默认打印机并使用指定的打印机?
有没有一个paintmonkey脚本来做到这一点?
我们不能依靠Firefox或Chrome来使用"最后使用的打印机"......有时他们会这样做,有时他们不这样做.有没有人想出一个hackish shell脚本来做到这一点...因为你可以告诉我我的智慧结束和绝望.我们会支付这笔费用 [更新:此时你已经太晚了,我打败你了!
我需要在比赛前删除一个空行.
所以给定文件:
random text
more random text
#matchee
Run Code Online (Sandbox Code Playgroud)
我需要匹配模式/ #matchee /,然后删除之前的空白行.
这是我尝试过的 - 没有成功:
sed '/^[ \t]*$/{N;/#matchee.*$/{D;}}' file.txt
Run Code Online (Sandbox Code Playgroud)
我的逻辑:
基本上/ matchee /是一个必须维护的常量,我需要从/ #matchee /分隔的记录文件中的每个记录中删除一个额外的空行.
无论什么都没有效果.我是RTFM-ing并且D 应该删除模式空间直到换行符.因为N添加换行符加下一行 - 这应该产生预期的结果....唉......不,不再.这是因为匹配基本上没有(空白)吗?
关注舞者教程:
http://search.cpan.org/dist/Dancer/lib/Dancer/Tutorial.pod
我正在使用我自己的sqlite3数据库与此架构
CREATE TABLE if not exists location (location_code TEXT PRIMARY KEY, name TEXT, stations INTEGER);
CREATE TABLE if not exists session (id INTEGER PRIMARY KEY, date TEXT, sessions INTEGER, location_code TEXT, FOREIGN KEY(location_code) REFERENCES location(location_code));
Run Code Online (Sandbox Code Playgroud)
我的舞者代码(helloWorld.pm)用于数据库:
package helloWorld;
use Dancer;
use DBI;
use File::Spec;
use File::Slurp;
use Template;
our $VERSION = '0.1';
set 'template' => 'template_toolkit';
set 'logger' => 'console';
my $base_dir = qq(/home/automation/scripts/Area51/perl/dancer);
# database crap
sub connect_db {
my $db = qw(/home/automation/scripts/Area51/perl/dancer/sessions.sqlite);
my $dbh = DBI->connect("dbi:SQLite:dbname=$db", …Run Code Online (Sandbox Code Playgroud) 问题:
我需要匹配邮件机软件程序的确切格式.它期望某种格式.我可以计算新行,回车,标签等的数量.使用像
cat -vte
Run Code Online (Sandbox Code Playgroud)
和
od -c
Run Code Online (Sandbox Code Playgroud)
和
wc -l ( or wc -c )
Run Code Online (Sandbox Code Playgroud)
但是,我想知道字符和文本部分之间的前导和尾随空格的确切数量.标签也是如此.
题:
您将如何分析然后使用常见的unix工具+ perl或python完全匹配模板?一线人更喜欢.另外,您对匹配DOS编码文件的建议是什么?你会先把它翻译成NIX,然后按原样分析或离开吗?
UPDATE
使用它来查看单个空格[假设文件中没有'%'字符]:
sed 's/ /%/g' filename.000
Run Code Online (Sandbox Code Playgroud)
计划构建一个分析每一行标签和空间内容的脚本.
使用@ shiplu的解决方案,向抗猫人群致敬:
while read l;do echo $l;echo $((`echo $l | wc -c` - `echo $l | tr -d ' ' | wc -c`));done<filename.000
Run Code Online (Sandbox Code Playgroud)
仍然需要对Windows进行一些调整,但它的方式很好.
示范文本
阅读的关键:
标有\n的换行符
回车标有\ r \n
标有[:space:]的未知空格/制表符(需要对其进行计数)
\r\n
\n
[:space:]Institution Anon LLC\r\n
[:space:]123 Blankety St\r\n
[:space:]Greater Abyss, AK 99999\r\n
\n
\n
[:space:] 10/27/2011\r\n
[:space:]Requested materials are available for pickup:\r\n
[:space:]e__\r[:space:] …Run Code Online (Sandbox Code Playgroud) 我收到了一份表格数据的PDF文件,我已将其转换为纯文本进行处理.
pdftotext -nopgbrk -layout file.pdf
Run Code Online (Sandbox Code Playgroud)
这做了相当不错的工作,但是使用空格来分隔/分隔列中的字段,并且似乎主要对保留视觉布局而不是"结构"布局感兴趣,即没有一致或可靠的分隔符.所以现在我将2个或更多空格转换为标签:
sed -i 's/[[:space:]]\{2,\}/\t/g' file.txt
Run Code Online (Sandbox Code Playgroud)
使用cat -vte我看到这在文件中放置标签确实很不错....但是,第二个字段存在一些不一致之处,我想请你帮忙.
请参阅以下比较以获得澄清:
正常/预期结果:
79879 5.6 0.5 MG EN SQ TFK World Report 09-24-2004 Time for Kids Editors, ORD1915643 79880 5.5 0.5 MG EN SQ TFK World Report 10-01-2004 Time for Kids Editors, ORD1915643 79881 6.0 0.5 MG EN SQ TFK World Report 10-08-2004 Time for Kids Editors, ORD1915643 79882 5.5 0.5 MG EN SQ TFK World Report 10-22-2004 Time for Kids Editors, ORD1915643 79883 5.9 0.5 MG …
问题:
我有一个文件名列表,filenames.txt:例如.
/usr/share/important-library.c
/usr/share/youneedthis-header.h
/lib/delete/this-at-your-peril.c
Run Code Online (Sandbox Code Playgroud)
我需要重命名或删除这些文件,我需要在项目目录树中找到对这些文件的引用:/home/noob/my-project/所以我可以删除或更正它们.
我的想法是使用bash来提取文件名:basename filename然后使用for循环在项目目录中grep它.
FILELISTING=listing.txt
PROJECTDIR=/home/noob/my-project/
for f in $(cat "$FILELISTING"); do
extension=$(basename ${f##*.})
filename=$(basename ${f%.*})
pattern="$filename"\\."$extension"
grep -r "$pattern" "$PROJECTDIR"
done
Run Code Online (Sandbox Code Playgroud)
我可以把这个项目弄得一团糟 - 有没有人看到我逻辑上的缺陷; 更好:你是否看到一个更可靠的可扩展方式来在一个巨大的目录树上执行此操作?让我们假设版本控制不在桌面上(事实上).