小编Mea*_*lpa的帖子

使用find在多个文件上回显文本

我想在一些文件中添加一些简单的文字.具体来说,我在Linux lpfc驱动程序上执行此操作:

ls -1 /sys/class/scsi_host/host* | awk -F '@' '{system("echo 0x0 > "$1"/lpfc_log_verbose")}'
Run Code Online (Sandbox Code Playgroud)

但考虑到常见情况,我需要处理文件名中的空格.于是我转身发现:

find -L /sys/class/scsi_host -nowarn -maxdepth 2 -type f -name 'lpfc_log_verbose' -exec echo 0x0 > {} \; 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

find -L /sys/class/scsi_host -maxdepth 2 -type f -name 'lpfc_log_verbose' -exec cat {} \; 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

很好,但显示我的编辑没有成功.那么我们可以在find -exec中使用重定向吗?什么是正确的解决方法?

linux shell gnu-coreutils

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

awk相当于cut -f2-

也就是说,在Nth之后提取字段的建议工作是什么?我在awk中找不到任何快捷方式来执行此操作.

什么是最有效和最简单的方法?

shell awk

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

如何为需要文件名的ed提供stdin?

这里需要一些基本的unix shell:

对于我看不到" - "目标的命令,比如ed:

print '%-2p\nq' | ed -s FILE
Run Code Online (Sandbox Code Playgroud)

我可以从某个cmd的stdout而不是FILE名称提供一个流作为要处理的数据:

SomeCMD | ed -s SOMETHING_MAGICAL <<< 'print '%-2p\nq'
Run Code Online (Sandbox Code Playgroud)

有可能吗?

unix linux shell ed

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

Windows批量反引用中的管道

我想看看我如何使用,或者像在Unix shell中那样在windows批处理的后引用中转义管道.假设我有这个:

FOR /F "usebackq delims=" %i IN (`date /t`) DO @set TODAY=%i
echo %TODAY%
Run Code Online (Sandbox Code Playgroud)

这将给我在TODAY变量中的日期.但我想让这个或多个管道工作:

FOR /F "usebackq delims=" %i IN (`date /t | cut -c 1-3`) DO @set TODAY=%i
Run Code Online (Sandbox Code Playgroud)

cmd.exe抱怨这样的错误我觉得我需要一个逃生机制?

| was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)

那么,这可行吗?怎么样?请注意我在PATH中有完整的gnu coreutils和大多数好东西,所以我可以使用cut作为例子.

windows shell batch-file

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

标签 统计

shell ×4

linux ×2

awk ×1

batch-file ×1

ed ×1

gnu-coreutils ×1

unix ×1

windows ×1