我希望 - [space]作为AWK中的字段分隔符.
例如,
awk -F-[space] {' print $1 '}
Run Code Online (Sandbox Code Playgroud)
如何在AWK中将许多字符作为字段分隔符?
[编辑]
弗拉德命令的确切输出
$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
Run Code Online (Sandbox Code Playgroud)
带有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
Run Code Online (Sandbox Code Playgroud)
了解你的报价:),但是要知道,GNU awk的-F需要扩展正则表达式(ERE)作为它的参数,所以你也需要,如果你想有一个文本匹配,而不是一个ERE匹配,例如,相应地逃脱
awk -F '- ' '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)
UPDATE
您的最新评论仍不清楚.
我需要一个具体的例子,例如
对于以下文件:
../Phy/Phy1/file1.pdf
../Phy/file2.pdf
../Che/Che1/file3.pdf
../Che/file4.pdf
../file5.pdf
../Phy2/file6.pdf
Run Code Online (Sandbox Code Playgroud)我想要显示:
PhyPhy1 file1.pdf - Phy file2.pdf - Che/Che1 file3.pdf - Che file4.pdf
Run Code Online (Sandbox Code Playgroud)请注意,对于上面的示例文件,命令:
echo lpr ../{Che,Phy}/{*.pdf,*/*.pdf}
Run Code Online (Sandbox Code Playgroud)
将只显示:
lpr Che/file4.pdf
lpr Che/Che1/file3.pdf
lpr Phy/file2.pdf
lpr Phy/Phy1/file1.pdf
Run Code Online (Sandbox Code Playgroud)
让我们先把这个部分弄好,然后我们会担心破折号等等.
UPDATE
好.请运行以下一个或两个几乎等效的命令:
echo Dropbox/Mas/edu/{Phy,Che}/*.pdf | sed -e 's: : - :g'
ls -1d Dropbox/Mas/edu/{Phy,Che}/*.pdf | paste -s -d '|' - | sed -e 's:|: - :g'
Run Code Online (Sandbox Code Playgroud)
然后请编辑您的原始帖子并添加以下内容,分开: