各項目には次の表があります。
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は、「///」のスラッシュの間にある空のフィールドです。)