用 echo 打印的每一行都包含给定文件所在目录的正斜杠。我正在尝试使用 cut 命令剪切正斜杠,但它不起作用。这些文件被 gzip 压缩,因此它们具有 .gz 扩展名。
#!/bin/bash
for filename in /data/logs/2017/month_01/201701*
do
echo $filename
cut $filename -d '/' -f1
done
提前致谢。
最佳答案
命令顺序错误。您需要将字符串输入流到cut
通过管道 ( |
) 或此处字符串 ( <<<
) 命令。
echo "$filename" | cut -d '/' -f1
(或)
cut -d '/' -f1 <<<"$filename"
(或)使用此处文档
cut -d '/' -f1 <<EOF
$filename
EOF
数据
并且不要忘记对变量加双引号以避免 Word-Splitting由 shell 完成。
关于linux - 在 bash 脚本中执行 cut 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43932854/