【问题标题】:command-line with variable, doesn't work带有变量的命令行,不起作用
【发布时间】:2013-08-02 20:01:35
【问题描述】:

我有一个使用带参数的 awk 的脚本,但我找不到正确的语法来使其正常运行。你能帮帮我吗? (在osx、终端、zsh、命令行下)

我得到一个变量,它是路径名(这是一个 awk 结果)

path_dir="/picture/dir/'

之后,我问这个:

awk -F"/" '{print $2}' $path_dir

但它不起作用。我明白了:

cant' open file $path_dir

我的目标是这样做:

dir_name=awk -F "/" '{print $2}' $path_dir

然后,使用

$dir_name

但首先,awk 无法读取我的$path_dir

有什么想法吗?

谢谢

【问题讨论】:

  • 那个目录存在吗? ls -d /picture/dir 告诉你什么?
  • 什么都没有。 "/picture/dir" 是文本,这是 $path_dir 的值。这是文件中的搜索结果(使用 awk)。我试图在文件的文本中查找创建的目录的名称以将其放入变量中:我想在变量 $dir_name 中获取文本“dir”

标签: macos command-line awk terminal zsh


【解决方案1】:

试试这个:

dir_name=$(awk -F'/' '{print $2}' <<<$path_dir)

这应该将dir_name 分配给picture

【讨论】:

  • 有什么地方可以点击接受答案吗?无论如何是的,我接受答案:-)
  • @user2643105 是的。在数字(up/downvote)下,有一个勾号。点击接受。
【解决方案2】:

试一试:

dir_name=`awk -F "/" '{print $2}' $path_dir`

【讨论】:

  • 谢谢,但我明白了:awk: can't open file /picture/dir/ source line number 1
  • @user2643105 它不起作用,因为 awk 会将文件 /picture/dir(即使它是一个目录)作为输入。但你想要的是使用文字文本“/picture/dir”作为输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2021-04-26
  • 2014-09-30
  • 1970-01-01
相关资源
最近更新 更多