尝试做这个小练习。这不是作业或任何事情,但我想确保我理解它。
创建2个文件。
file1
将有4行文字。file2
将有6行文字。创建一个管道,打印最后两行file1
和前三行file2
。将file1
中的所有小写字符音译为大写,将file2
中的所有大写字符音译为小写。使用无临时文件。
使用两个
tr
命令在管道开头使用命令分组。
我的剧本:
#!/bin/bash
i=0;
while [ $i -lt 4 ]
do
echo "line $i of file1";
i=`expr $i + 1`;
done > file1
i=0;
while [ $i -lt 6 ]
do
echo "LINE $i OF FILE2";
i=`expr $i + 1`;
done > file2
{
tr [:lower:] [:upper:] < `cat file2 file1 | tail -2`;
tr [:upper:] [:lower:] < `cat file2 file1 | head -3`;
}
我觉得这很接近,但我一直收到ambiguous redirect
错误。任何帮助将不胜感激。
答案 0 :(得分:0)
更改订单
cat file_1 file | tail -2 | tr ...
或进行流程替换
tr ... <(cat ... | tail ..)