linux – 你能解释一下这个sed one-liner吗?
发布时间:2020-12-14 01:27:49 所属栏目:Linux 来源:网络整理
导读:以下一个班轮反过来打印出文件的内容 $sed -n '1!G;h;$p' test.txt 当sed逐行读取文件时怎么可能?你能解释一下这个意思吗? n旗帜 1! G. h 和$p 在这个命令? 解决方法 这将与tac完成相同的工作,即恢复行的顺序. 将sed脚本重写为伪代码,意味着: $line_num
以下一个班轮反过来打印出文件的内容
$sed -n '1!G;h;$p' test.txt 当sed逐行读取文件时怎么可能?你能解释一下这个意思吗? > n旗帜 在这个命令? 解决方法
这将与tac完成相同的工作,即恢复行的顺序.
将sed脚本重写为伪代码,意味着: $line_number = 1; foreach ($input in $input_lines) { // current input line is in $input if ($line_number != 1) // 1! $input = $input + 'n' + $hold; // G $hold = $input; // h $line_number++ } print $input; // $p 正如你所看到的,sed语言非常富有表现力:-) 1!和$是所谓的地址,它在运行命令时设置条件. 1!表示不在第一行,$表示结尾. Sed有一个辅助存储器寄存器,称为保持空间. 有关更多信息,请在linux控制台上输入sed(这是最好的文档). -n在循环本身中禁用默认的print $input命令. 在这个例子中,术语模式空间和保持空间是变量$input和$hold(分别)的等价物. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |