小编PYP*_*YPL的帖子

在csh中重定向stderr

我正在执行一个将崩溃报告转储到STDERR我必须过滤一些必要信息的程序.问题是,我无法重定向STDERRSTDOUTPIPEgrep

command 2>&1 >/dev/null | grep "^[^-]" >& /tmp/fl
Run Code Online (Sandbox Code Playgroud)

得到错误: Ambiguous output redirect.

相同的命令在bash终端下工作.我应该改变什么来使它工作?

linux shell csh tcsh

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

在android工具栏中正确实现SearchView

我在android工具栏中的searchview实现有问题.

  1. 空的空间填充太大了.
  2. 我不想隐藏其他操作,但这些操作与SearchView重叠.
  3. SearchView的下划线不可见

我如何解决上述问题?

在此输入图像描述

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:title="@string/car_num"
        android:icon="@drawable/ic_search_white_24dp"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="always" />

    <item
        android:id="@+id/action_add_client"
        android:icon="@drawable/ic_account_multiple_plus"
        android:title="@string/action_add_client"
        app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

分段

@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_fragment_reg_vehicles, menu);

    final MenuItem item = menu.findItem(R.id.action_search);
    searchView = (SearchView) MenuItemCompat.getActionView(item);
    searchView.setQueryHint("Search");
    searchView.setMaxWidth(Integer.MAX_VALUE);
    searchView.setIconifiedByDefault(false);
    searchView.setOnQueryTextListener(this);
    searchView.setOnCloseListener(new SearchView.OnCloseListener() {
        @Override
        public boolean onClose() {
            setItemsVisibility(menu, item, true);
            return false;
        }
    });
    searchView.setOnSearchClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            setItemsVisibility(menu, item, false);
            searchView.requestFocus();
        } …
Run Code Online (Sandbox Code Playgroud)

android searchview android-toolbar

7
推荐指数
1
解决办法
1669
查看次数

linux下perl上的基本聊天系统

我试着写一些基本的聊天系统只是为了学习perl.我试图将聊天记录变成1个文件并打印新消息,如果它出现在chatlog.dat文件中,所以我写了一个功能几乎完全相同的东西,但我有一些问题,不知道如何解决它们.所以现在我有2个问题!

  1. 我无法理解如何保持checkFile功能始终处于活动状态(如多处理)以持续检查新消息

  2. 当我尝试编写将附加到聊天记录中的新消息时,会发生此问题.口译员在线上等待我的输入my $newMessage = <STDIN>;,但是,如果有人写了新消息怎么办?直到他按下进入才会显示...如何取消?

    my ($sec,$min,$hour) = localtime();
    while(1){
        my $userMessage = <STDIN>;
        last if $userMessage eq "::quit";
        `echo "($hour:$min:$sec): $userMessage" >>chatlog.dat`;
    }
    
    sub checkFile{
        my $lastMessage = "";
        my $newMessage = "";
        while (1) {
            my $context = `cat chatlog.dat`;
            split(/\n/, $context);
            $newMessage = $_[$#_];
            if ($newMessage ne $lastMessage) {
                print $newMessage;
                $lastMessage = $newMessage;
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

linux perl chat

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

过滤字典中的常见子字典键

如何过滤父词典中其他子词典键中存在的所有常用子词典键

d = {
  '0': {'key_x': 0, 'key_y': 15, 'key_z': 41}
  '1': {'key_x': 5, 'key_y': 22}
  '2': {'key_x': 6, 'key_y': 41}
}

result ['key_x', 'key_y']
Run Code Online (Sandbox Code Playgroud)

目前解决方案是

intersect = {}
for k in corner_values.keys():
    for j in corner_values[k]:
        if j not in intersect:
            intersect[j] = 1
        else:
            intersect[j] += 1

for k in intersect:
    if intersect[k] != len(corner_values.keys()):
        del intersect[k]
Run Code Online (Sandbox Code Playgroud)

有没有更简单的解决方案呢?

python dictionary filter

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

如何将二进制数转移到左侧

简单的事情,如何打印二进制数并将其转移到左侧?

$num = 0b00000010001;
for(0..6){
    print sprintf ("%b",$num), "\n";
    $num<<1;
}
Run Code Online (Sandbox Code Playgroud)

这段代码的问题:它不会在1之前打印0!打印的重新打印只是"10001",它不会改变数字.

最终的输出应该是:

00000010001
00000100010
00001000100
00010001000
00100010000
01000100000
10001000000
Run Code Online (Sandbox Code Playgroud)

binary perl shift

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

在regexp中逃避这个词

我有这样的字符串

 $str = '"filename","lf","$data","{ }",0';
Run Code Online (Sandbox Code Playgroud)

如何"从字符串中删除所有?我试图使用这种正则表达式:

 $str =~ s/"(.+?)"//s;
Run Code Online (Sandbox Code Playgroud)

它应匹配单词并删除"-s

regex perl

2
推荐指数
1
解决办法
71
查看次数

在Perl中拆分数组

我有一个类似的数组

@tmp = ('value1-1', 'value1-2', 'value1-3', '', 'value2-1', 'value2-2', 'value2-3')
Run Code Online (Sandbox Code Playgroud)

在看到值为空后,如何将数组拆分为两部分''

所以输出应该是这样的

@value1=('value1-1','value1-2','value1-3');
@value2=('value2-1','value2-2','value2-3');
Run Code Online (Sandbox Code Playgroud)

我试过这种方式

foreach $item(@tmp){
    unless($add == ''){
         #print $add;
         push (@value,$add);
    }
}
Run Code Online (Sandbox Code Playgroud)

它不会返回任何东西.

arrays perl split

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

在循环中更改新数组名称

如何更改数组的名称以在其中放置另一个项目

 @array=("1, 2, 3, 4", "5, 6, 7, 8");
 $c=0;
 foreach $x(@array){
      push ("@value_$c", split(", ", $x));
      $c++;}
Run Code Online (Sandbox Code Playgroud)

所以输出应该是这样的:

 @value_0=(1,2,3,4)
 @value_1=(5,6,7,8)
Run Code Online (Sandbox Code Playgroud)

PS:我知道写"@ value_ $ c"是不正确的

arrays perl

0
推荐指数
1
解决办法
56
查看次数

Perl:反转文件中的每个单词

我正在尝试编写一个脚本来反转每行中文件中的每个单词

  • 之前: line1 asdasdfff
  • 后: 1enil fffdsadsa

使用:

@lines = split(/\s+/, reverse($old));
Run Code Online (Sandbox Code Playgroud)

错误在哪里?

perl reverse

-1
推荐指数
1
解决办法
607
查看次数

如何在没有uc()函数的情况下将字母转换为UpperCase?

我正在尝试编写一个脚本,它将所有字母从小写转换为大写而不使用该uc()函数.

perl lowercase uppercase

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