2

awkを使用して、ファイルパス内の特定のサブストリングを取得しようとしています。としてawkコマンドに何かが入ってくるとするとa/workspace/folder.fold/secondfolder/file.ext、どうすればそれを結果として得ることができfolder.fold/secondfolder/file.extますか?

私がやろうとしていた

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

しかし、それは私にしか与えませんfolder。私はawkを初めて使用するので、どんな助けでも大歓迎です。

編集:それは実際にはとして入ってくるa/workspace/folder.fold/secondfolder/file.ext。私の試みでは、余分なa/ものは$1として引き出されます。

4

3 に答える 3

2

awkこれには最適なツールではありませんが、次のことができます。

awk '{ sub( "/[^/]*/","")}1'
于 2013-02-12T22:31:47.920 に答える
1

sedを試すことができます

sed -re 's@([^/+]/)([^/]+/)@@' temp.txt

入力

a/workspace/folder.fold/secondfolder/file.ext

出力

folder.fold/secondfolder/file.ext

于 2013-02-13T03:37:48.073 に答える
1

望ましい出力を達成するためのいくつかの方法は次のとおりです。

echo '/workspace/folder.fold/secondfolder/file.ext' | awk -F/ '{for(i=3;i<=NF;i++) printf("%s" ,$i FS)}

echo '/workspace/folder.fold/secondfolder/file.ext' | cut -d / -f 3-
于 2013-02-12T22:55:25.833 に答える