无法在AWK中将多个字符设置为字段分隔符

时间:2009-03-14 03:14:42

标签: awk

我希望 - [space]作为AWK中的字段分隔符。

例如,

awk -F-[space] {' print $1 '}

如何在AWK中将多个字符作为字段分隔符?

[编辑]

Vlad命令的确切输出

$echo /Users/Sam/Dropbox/Education/Chemistry/Other\ materials/*.pdf | sed -e 's: : - :g'
/Users/Sam/Dropbox/Education/Chemistry/Other - materials/CHE_IB_LAB.pdf - /Users/Sam/Dropbox/Education/Chemistry/Other - materials/Lecture19_20_21.pdf

带有sed的Vlad命令的确切输出

$echo /Users/Sam/Dropbox/Education/Chemistry/Other\ materials/*.pdf
/Users/Sam/Dropbox/Education/Chemistry/Other materials/CHE_IB_LAB.pdf /Users/Sam/Dropbox/Education/Chemistry/Other materials/Lecture19_20_21.pdf

1 个答案:

答案 0 :(得分:5)

知道你的引用:),但要注意GNU awk的{​​{1}}采用扩展正则表达式(ERE)作为其参数,因此如果你想要一个文本,你可能还需要相应地转义匹配而不是ERE匹配,例如

-F

<强>更新

您的最新评论仍不清楚。

  1. 磁盘上PDF文件的完整路径是什么
  2. 这些文件所需的确切输出是什么?
  3. 我需要一个具体的例子,例如

    1. 以下文件:

      awk -F '- ' '{ print $1 }'
      
    2. 我想要显示:

      ../Phy/Phy1/file1.pdf
      ../Phy/file2.pdf
      ../Che/Che1/file3.pdf
      ../Che/file4.pdf
      ../file5.pdf
      ../Phy2/file6.pdf
      
    3. 请注意,对于上面的示例文件,命令:

      PhyPhy1 file1.pdf - Phy file2.pdf - Che/Che1 file3.pdf - Che file4.pdf
      

      显示:

      echo lpr ../{Che,Phy}/{*.pdf,*/*.pdf}
      

      让我们先把这部分放好,然后我们会担心破折号等。


      <强>更新

      行。请运行以下一个或两个几乎等效命令:

      lpr Che/file4.pdf
      lpr Che/Che1/file3.pdf
      lpr Phy/file2.pdf
      lpr Phy/Phy1/file1.pdf
      

      然后请修改您的原始帖子并添加以下内容,分开

      1. 上述命令的准确输出(复制粘贴)
      2. 上述命令的确切输出由您改变以满足您的需要