linux - 在 bash 脚本中执行 cut 命令

标签 linux bash

用 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/

相关文章:

linux - 如何使用gdk和Rust获取当前事件窗口的标题?

c++ - 将库添加到 MonoDevelop C++ 项目

linux - linux内核线程映射1 :1 or m:n on cpu hardware threads?吗

bash - 管道胶带有时会跳过任务 : cross-product error

linux - 如何仅使用 shell 命令编辑文件以保持相同长度的行

LInux 用进程状态检查替换 sleep 调用

linux - .screenrc 并登录到多个远程服务器

regex - IF 语句在 RHEL 6 中不起作用(在 RHEL 5 中起作用)

bash - {1} 在 |master {1} 中是什么意思 ✓|与 bashit?

linux - 对 bash 脚本中特定命令的特权访问