小编ano*_*on1的帖子

管道 xargs 后的管道命令

HP-UX ***** B.11.23 U ia64 **** 无限制用户许可证

find . -type d -name *log*?|?xargs ls -la
Run Code Online (Sandbox Code Playgroud)

给我目录名称(包含log在目录名称中的名称),后跟该目录中的所有文件。

目录?/var/opt/SID/application_a/log/,?/var/opt/SID/application_b/log/,?/var/opt/SID/application_c/log/等等包含日志文件。

我只希望ls命令列出两个最新的日志文件,我通常使用ls -latr?|?tail -2.

输出必须是这样的..

find . -type d -name *log*?|?xargs ls -la
Run Code Online (Sandbox Code Playgroud)

find . -type d -name *log*?|?xargs ls -la?|?tail -2没有给我上面的结果。我得到的是最后两个find . -type d -name *log*?|?xargs ls -la命令文件的列表 。

那么我可以在管道之后管道命令xargs吗?我如何查询,以获取上述格式的结果文件列表?

/var/opt/SID/application_a/log/
-rw-rw-rw-   1 user1    user1      59698 Jun 11  2013 log1
-rw-rw-rw-   1 user1    user1      59698 Jun …
Run Code Online (Sandbox Code Playgroud)

shell pipe find xargs

58
推荐指数
3
解决办法
10万
查看次数

对大文件中的行进行重复数据删除

该文件的大小为 962,120,335 字节。

HP-UX ******B.11.31 U ia64 ***** 无限制用户许可证

hostname> what /usr/bin/awk
/usr/bin/awk:
         main.c $Date: 2009/02/17 15:25:17 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
         run.c $Date: 2009/02/17 15:25:20 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
         $Revision: @(#) awk R11.31_BL2010_0503_1 PATCH_11.31 PHCO_40052
hostname> what /usr/bin/sed
/usr/bin/sed:
         sed0.c $Date: 2008/04/23 11:11:11 $Revision: r11.31/1 PATCH_11.31 (PHCO_38263)
         $Revision: @(#) sed R11.31_BL2008_1022_2 PATCH_11.31 PHCO_38263
 hostname>perl -v
    This is perl, v5.8.8 built for IA64.ARCHREV_0-thread-multi
hostname:> $ file /usr/bin/perl
/usr/bin/perl:  ELF-32 executable object file - IA64
hostname:> $ file /usr/bin/awk
/usr/bin/awk:   ELF-32 executable …
Run Code Online (Sandbox Code Playgroud)

large-files text-processing deduplication

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

awk 从变量中删除字符串

HP-UX *** B.11.31 U ia64 ***无限用户许可证

我想将当前目录中名为 abc.txt 的文件移动到名为 ./begperl 的目录。当我这样做时,我希望文件的移动版本被命名为 ab.txt。我想要的是从文件名中删除预定义的字符串并移动它,并根据第三个变量 = Y/ 删除原始文件N。我尝试过下面的oneliners但没有成功。

awk -v name=abc.txt -v dir=begperl 'BEGIN{ renamed_var=substr("c", "", name);system("mv " name  "./"dir/renamed_var)}' 

awk -v name=abc.txt -v dir=begperl 'BEGIN{ renamed_var=substr("c", "", name); print renamed_var}'

awk -v name=abc.txt -v dir=begperl 'BEGIN{ print substr("c", "", name) }'


awk -v name=abc.txt -v dir=begperl -v variable_two=substr("c", "", name){print variable_two}' 


awk -v name=abc.txt -v dir=begperl -v variable_two=substr("c", "", name){print variable_two}'
Run Code Online (Sandbox Code Playgroud)

我唯一能工作的班轮是

awk -v name=abc.txt -v dir=begperl 'BEGIN{ system("mv " name " …
Run Code Online (Sandbox Code Playgroud)

awk

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

散列在 shell 脚本中的使用

什么是shell脚本的散列字符超出评论或使用它们的用途$#; 还有什么其他用途?

我希望能够grep在散列之前查看每一行的内容,因为在代码的同一行中有注释。

应用上下文主要是korn shell,我使用的系统是“HP-UX ***B.11.31 U ia64 *****unlimited-user license”。

shell-script

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