小编bmk*_*bmk的帖子

如何将日期字符串添加到连续写入的日志文件的每一行

有一个长时间运行的程序,不断写入日志文件 - 如何使用Linux脚本为每个写入该文件的行添加日期字符串,忽略任何缓冲问题?

我会想象这样的事情:

tail -f logfile | ADD_DATE_TO_EACH_LINE > logfile2
Run Code Online (Sandbox Code Playgroud)

输入将是这样的:

abc
def
ghi
jkl
Run Code Online (Sandbox Code Playgroud)

输出应该类似于:

2011-06-16 18:30:59 abc
2011-06-16 18:31:00 def
2011-06-16 18:35:21 ghi
2011-06-16 18:40:15 jkl
Run Code Online (Sandbox Code Playgroud)

linux string bash logging csh

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

运行展开查找结果

我正在尝试对命令找到的所有文件运行expand shell find命令.我试过-exec和xargs但都失败了.谁能解释我为什么?我在Mac上备案.


find . -name "*.php" -exec expand -t 4 {} > {} \;

这只是创建一个{}包含所有输出的文件,而不是覆盖每个单独找到的文件本身.


find . -name "*.php" -print0 | xargs -0 -I expand -t 4 {} > {}

这只是输出

4 {}
xargs: 4: No such file or directory
Run Code Online (Sandbox Code Playgroud)

unix linux expand find xargs

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

使用 - 和 - 作为设置位置参数时设置的选项之间的区别

在man bash中提到它set有两个选项---

我想知道在设置位置参数时使用---作为选项set时是否存在任何差异.

当我们在设置位置参数时使用它时,我找不到man bash中提到的任何重大差异.

linux bash shell

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

如何将stderr和stout重定向到多个位置?

我需要在bash脚本中执行一个命令(在freebsd6上),我需要将命令的stderr和stdout发送到控制台,一个日志文件和一个bash变量.

所以,没有任何重定向,我想要的是:

result=`./command | tee output.log`
Run Code Online (Sandbox Code Playgroud)

如果我按原样运行,只有stderr进入控制台,只有stdout将它同时输出到output.log文件和$ result变量.我理解为什么会这样,但许多尝试不同的重定向都无法将两个流发送到所有三个位置.

如何将stderr和stdout发送到所有三个位置?

c unix redirect stderr tee

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

除了匹配范围结束模式的那个之外,如何使用sed打印一系列行?

我不知道是否有一sed打印范围内的行,由图案确定-only方式进行匹配,除了端模式匹配的一个最后一行.

考虑以下示例.我有一个文件

line  1
line  2
line  3
ABC line  4
+ line  5
+ line  6
+ line  7
line  8
line  9
line 10
line 11
line 12
Run Code Online (Sandbox Code Playgroud)

我希望得到所有以ABC(包括)开头的所有内容以及以+:

ABC line  4
+ line  5
+ line  6
+ line  7
Run Code Online (Sandbox Code Playgroud)

我试过了

sed -n '/ABC/I,/^[^+]/ p' file
Run Code Online (Sandbox Code Playgroud)

但这给了一行太多:

ABC line  4
+ line  5
+ line  6
+ line  7
line  8
Run Code Online (Sandbox Code Playgroud)

sed离开最后一行的最简单方法是什么?

regex linux shell sed range

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

在目录中重命名具有相同扩展名的多个文件

在Dir / home/test中:

a.244
b.244
c.244
d.244
Run Code Online (Sandbox Code Playgroud)

我想将文件重命名只是a,b,c,d.

我想删除.244.

我试过了rename s/.244// /home/test/*.244.

它不起作用.

bash

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

转义linux shell参数

我试图摆脱其中包含空格的shell参数之间的"{}"字符.例如:

./cod4_start.sh hello 28960"HOSTNAME WITH SPACES"

一旦我将"HOSTNAME WITH SPACES"作为参数传递,即使它的双引号shell将主机名视为{HOSTNAME WITH SPACES}.

是否有任何其他参数传递给脚本,以便我的变量中没有{}个字符?

这是代码:

#!/usr/bin/expect -f
set pssword [lrange $argv 0 0]
set port [lrange $argv 1 1]
set mod [lrange $argv 2 2]
set map [lrange $argv 3 3]
set num [lrange $argv 4 4]
set hostname [lrange $argv 5 5]
set rcon [lrange $argv 6 6]
set password [lrange $argv 7 7]
set gtype [lrange $argv 8 8]
set slots [lrange $argv 9 9]
spawn su - kod -c …
Run Code Online (Sandbox Code Playgroud)

linux shell arguments tcl expect

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

为什么我没有得到以下除以3时钟vhdl代码的输出?

以下代码中没有合成错误,但在模拟时仍未获得输出.cout一直保持逻辑1.请任何人帮我解决什么错误?

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity divide_by_3 is
port (
  cout   :out std_logic; -- Output clock
  clk    :in  std_logic; -- Input clock
  reset  :in  std_logic  -- Input reset
 );
end divide_by_3;

architecture Behavioral of divide_by_3 is
  signal pos_cnt :std_logic_vector (1 downto 0);
  signal neg_cnt :std_logic_vector (1 downto 0);
begin

  process (clk, reset) 
    begin
      if (reset = '1') then
        pos_cnt <= (others=>'0');
      elsif (rising_edge(clk)) then
        if (pos_cnt = "10") then
          pos_cnt <= pos_cnt + '1'; …
Run Code Online (Sandbox Code Playgroud)

vhdl

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

标签 统计

linux ×5

bash ×3

shell ×3

unix ×2

arguments ×1

c ×1

csh ×1

expand ×1

expect ×1

find ×1

logging ×1

range ×1

redirect ×1

regex ×1

sed ×1

stderr ×1

string ×1

tcl ×1

tee ×1

vhdl ×1

xargs ×1