在脚本中重定向的输出:
$ ls -ltr |awk '{print $9}'
default.txt
dfah.txt
fruit.txt
fruit_prices.txt
dfh.txt
header.txt
testfile.txt
topoutput.txt
Run Code Online (Sandbox Code Playgroud)
在 shell 上编写的脚本:
while read line
do
var=`sed -e 's/\.txt/txt\.txt/' $line`
echo $var
done < `ls -ltr |awk '{print $9}'`
Run Code Online (Sandbox Code Playgroud)
出现错误:
-bash: `ls -ltr |awk '{print $9}'`: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)
专家可以帮我看看上面的代码中如何发生不明确的重定向吗?
我有一些文件名包含多个扩展名:
$ ls -r
File1_345.R.12345
File1_3.234.R.6789
File1_2345.R.2345
File1_12345.R.12345
$
Run Code Online (Sandbox Code Playgroud)
我想重命名它们以删除所有现有的扩展名并将它们替换为.txt
. 输出应如下:
$ ls -r
File1_345.txt
File1_3.txt
File1_2345.txt
File1_12345.txt
Run Code Online (Sandbox Code Playgroud)
是否可以使用 find 和 xargs 命令?