タグ付けされた質問 「cut」

カットに関する質問については、入力の各行のフィールドまたは列を抽出するフィルタープログラム。このタグは、カット自体に関する質問や、カットユーティリティの使用に起因する問題に関する質問に使用します。

2
utfを認識しているcoreutils?
cut今日使用したとき、UTF-8文字を文字として扱うのではなく、3バイトの長さであるため3文字であることがわかりました。 これは多くのツールで一般的に当てはまるようです。 coreutilsUTF-8対応のバージョンはありますか? 私のlocale出力: LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= cutうまくいかないとき echo 哈哈 | cut -c 2- ��哈 正しい出力は 哈 cut -cマルチバイト文字を使用した場合。
16 unicode  coreutils  cut 

3
UTF-8で `cut -c`(` --characters`)を使用できませんか?
このコマンドにcutは、オプションの-cあるバイトではなく、文字を処理するオプションがあります-b。しかし、en_US.UTF-8ロケールでは機能しないようです: 2番目のバイトは、2番目のASCII文字(UTF-8とまったく同じようにエンコードされます)を提供します。 $ printf 'ABC' | cut -b 2 B ただし、UTF-8ロケールでは3つのギリシャ語の非ASCII文字のうち2番目の文字は表示されません。 $ printf 'αβγ' | cut -b 2 � 大丈夫-2番目のバイトです。 したがって、代わりに2番目の文字を見てみましょう。 $ printf 'αβγ' | cut -c 2 � それは壊れているように見えます。 いくつかの実験で、範囲3-4が2番目の文字を示していることがわかりました。 $ printf 'αβγ' | cut -c 3-4 β しかし、これはバイト3〜4と同じです。 $ printf 'αβγ' | cut -b 3-4 β したがって、これはUTF-8の-c場合を超えません-b。 ロケールのセットアップはUTF-8には適切ではないと思いますが、比較すると、wc期待どおりに機能します。 …

7
1つのコマンドで2つの異なるカット出力を組み合わせますか?
次のようなファイルがあります。 1234 ABCD EFGH 次のように変換したいと思います。 2341 BCDA FGHE 実際のファイルには4,000語あるので、効率的な方法でこれを実行したいと思います。コマンドを使用してみcut -c 2-4,1 file.txtましたが、入力とまったく同じ出力が生成されます。3つの異なるコマンドを使用できると考えていました。 cut -c 1 file.txt > temp1.txt cut -c 2-4 file.txt > temp2.txt // combine the two with paste or pr ...しかし、1つのコマンドを実行する方が、毎回3つのコマンドを実行するよりもエラーが発生しにくいので、わずかな変更を加えて複数回実行する必要があるため、単一のコマンドを好むでしょう。 2つのカットステートメントを1つに結合する方法はありますか?何かのようなもの: cut -c 1 file.txt | pr (cut -c 2-4 file.txt) または、これを行うためのより良い方法はありますか?

5
テキストファイルから列2を切り取る
私のテキストファイルには、セパレーターだけのスペースを指定する区切り文字がありません。出力ファイルに列2を切り取る方法、 39 207 City and County of San Francisc REJECTED MAT = 0 78 412 Cases and materials on corporat REJECTED MAT = 0 82 431 The preparation of contracts an REJECTED MAT = 0 だから私が必要な出力は 207 412 432

3
最後の区切り文字で文字列を切り取ります
のようなファイル名がありa.b.c.txt、この文字列を次のように分割したい string1=a.b.c string2=txt 基本的に、ファイル名とその拡張子を分割します。私が使用しcutたが、それはように分割a,b,cしてtxt。最後の区切り文字の文字列を切りたいです。 誰か助けてもらえますか?
14 shell  cut 

3
Bashでstdoutの線幅を動的にトリミングする
最近、私はpsコマンドを実験していますが、長いパスが次の行(または2行)に折り返されて読みにくくなる場合があります。ps出力を別のプログラムにパイプして、出力をx文字数に制限したい。 これが私がこれまで持ってきたものですが、それは完全にうまくいきません: ps aux | cut -c1-$(stty size | cut -d' ' -f2) $(stty size | cut -d' ' -f2)は167と評価されますが、の有効な入力ではないようですcut。 このタイプの構文をbashで機能させる方法はありますか?
9 bash  shell  stdout  cut 

6
ファイルの特定のコンテンツを取得する
だから私はそれらについて聞いたのでこの問題のためのツールが存在することを知っていますが、それらが何であるかはわかりません。 / etc / passwd内のユーザー名以外のすべてのデータを除外するようなことをしたいのですが。 たとえば、次のファイルからuser1、user2、およびuser3を取得したいとします。この場合のロジックは、「ファイルの各行の最初の ':'までテキストを取得する」です。 user1:x:1:4 user2:x:2:5 user3:x:3:6 出力は次のようになります。 user1 user2 user3
9 files  sed  awk  cut 

1
カットのバッファリングを解除する方法は?
メールログファイルから「@ xyz.nl」で終わるメールアドレスのみを取得したい。これを達成するには、次のようにします。 # tail -f /var/log/mail.log | grep --i --line-buffered "@xyz.nl" | cut -d '@' -f 1 | cut -d '<' -f 2 --line-buffered with grepは、パイプが端末と見なされないために出力をバッファリングするため、必要です。Grepは次のような行を出力します。 Aug 29 11:56:01 localhost postfix/smtp[4124]: 05491500123: to=<someone@xyz.nl>, relay=123.456.123.456[123.456.123.456]:25, delay=2, delays=0.4/0/0.4/1.2, dsn=2.0.0, status=sent (250 2.0.0 u7T9twxN074009 Message accepted for delivery) 最初のカットは次のようになります。 Aug 29 11:56:01 localhost …
8 pipe  cut 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.