假设我有一个输入流,其中包含分隔成一定数量字段的行。我想剪切各个领域,向某个程序(假定每个输入行返回一行)输入某个字段(或多个字段),并将其他字段保持原样并粘贴到一起。我大概可以想象一些令人费解的解决方案,但这应该是一种干净自然的方式。在命令中输入输入流的某个字段,并粘贴结果
作为一个具体的例子,说我有生产形式的线方案:
$ inputprog
<a> hello world!
<b> hi everyone!
<a> hi!
说我希望把消息中大写,而离开第一场不变。这里是我想象的事情:
$ inputprog | program -d' ' -f2- "tr a-z A-Z"
<a> HELLO WORLD!
<b> HI EVERYONE!
<a> HI!
我要寻找一个合理的清洁方法近似program
。 (我对这个例子特有的解决方案不感兴趣。)
在此先感谢您的帮助!
感谢您给我们详细的答复!我知道'sed'和'awk',但我真的需要将该字段转换为我有的用例的外部程序。 'toupper()'适用于这种简单的情况,但是'awk'内置对于我想做的事来说是不够的。但是,awk似乎具有将字段传递给外部命令的功能,我可以用它来做我想做的事情。谢谢你给我这个主意! :-) – a3nm