2

-[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
4

1 に答える 1

5

あなたの引用を知ってください :) しかし、GNUawk-F引数として拡張正規表現 (ERE) を取ることに注意してください。したがって、ERE 一致ではなくテキスト一致が必要な場合は、それに応じてエスケープする必要があるかもしれません。

awk -F '- ' '{ print $1 }'

アップデート

あなたの最新のコメントはまだ不明です。

  1. ディスク上の PDF ファイルのフルパスは何ですか
  2. それらのファイルから必要な正確な出力は何ですか?

具体例が必要です。

  1. 次のファイルの場合:

    ../Phy/Phy1/file1.pdf
    ../Phy/file2.pdf
    ../Che/Che1/file3.pdf
    ../Che/file4.pdf
    ../file5.pdf
    ../Phy2/file6.pdf
    
  2. 表示したい:

    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

まずはこの部分を整えてからダッシュなどを考えていきましょう。


アップデート

わかった。次のほぼ同等のコマンドのいずれかまたは両方を実行してください。

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'

次に、元の投稿を編集して、次の行を区切って追加してください。

  1. 上記のコマンドの正確な出力 (コピーして貼り付け)
  2. 必要に応じて変更された上記のコマンドの正確な出力
于 2009-03-14T03:20:43.013 に答える