トリプルスラッシュをカッティング区切り文字として使用するには?

トリプルスラッシュをカッティング区切り文字として使用するには?

各項目には次の表があります。

coagulation factor VIII-associated 1 /// coagulation factor VIII-associated 2 /// coagulation factor VIII-associated 3

使用したいのですがcut -d/// -f2 myfile.txtエラーが発生します。

切り取り: 無効な区切り記号

区切り文字の周囲に一重引用符や二重引用符を使用する場合も同様です。

cut -d'///' -f2 myfile.txt

cut -d"///" -f2 myfile.txt

どういうわけかスラッシュを避けるべきですか?それでは、カットのエスケープ文字は何ですか?文書にはその情報がないようです。 \を試してみました。

答え1

区切り文字が次の場合1つの固定文字を除くすべてcutそれでは間違ったツール。

代わりに使用してくださいawk

3つのフィールドを持つこのテストファイルを考えてみましょう。

$ cat file
one///two/2//two///three

2番目と2番目のフィールドのみを印刷するには:

$ awk -F/// '{print $2}' file
two/2//two

答え2

他の答えは問題ありませんが、必要に応じて現在のcut区切り文字を変更して使用することもできます。たとえば、次のようになります。

sed "s/\/\/\//\//g" myfile.txt | cut -d/ -f2

答え3

区切り記号は次のとおりです。cut常に単一文字なので、「///」を区切り文字として指定することはできません。

代わりに、「/」を区切り文字として使用し、追加のフィールド数を計算できます。

cut -d/ -f4 myfile.txt

(フィールド2と3は、「///」のスラッシュの間にある空のフィールドです。)

関連情報