タグ付けされた質問 「text-processing」

プログラム、スクリプトなどによるテキストの操作または検査

4
bash:findのselectへのホワイトスペースセーフな手続き的使用
これらのファイル名を考えると: $ ls -1 file file name otherfile bash 埋め込まれた空白でそれ自体は完全にうまくいきます: $ for file in *; do echo "$file"; done file file name otherfile $ select file in *; do echo "$file"; done 1) file 2) file name 3) otherfile #? しかし、時々私も厳密内のすべてのファイル、またはと仕事したくない場合があります$PWDところで、find入ってくるも、ハンドル空白名目上。: $ find -type f -name file\* ./file ./file name …

8
最初の行に基づいて列を並べ替える方法は?
非常に大きなデータセット(1000行と700000列)の列を並べ替える必要があります。例として、私の列はcol1 col4 col3 col2のようにランダムに配置され、ソートする必要があります。 私はいくつかのコマンドを試しましたが、成功しませんでした。 例: ID M2 M5 M8 M1 M3 M9 .....M7000000 Animal1 1 0 2 1 0 2 .....1 Animal2 0 1 2 0 1 1 .....0 Animal3 2 1 0 1 2 1 .....0 . . . . Animaln この例では、ドットは、列と行がたくさんあることを意味します。繰り返しますが、列を次のようにソートする必要があります。 ID M1 M2 M3 M4 M5 …


3
2つのファイルを一度に1列ずつマージする
次の形式の2つの大きなファイル(3000列、15000行)があります file1(タブ区切り): 1/0 0/0 0/0 0/0 1/1 0/0 1/1 0/1 0/0 file2(タブ区切り): 3 5 2 1 7 10 3 4 3 各ファイルの最初の列の値を「:」区切り文字で組み合わせてから、2番目、3番目などの列に移動します。必要な出力(タブ区切り): 1/0:3 0/0:5 0/0:2 0/0:1 1/1:7 0/0:10 1/1:3 0/1:4 0/0:3 効率は重要ではないため、どの言語でも問題ありません。これが以前に尋ねられた場合、私は謝罪します。

6
awkを使用して列を並べ替える
私はcsvファイルの7列目を最後に移動しようとしています awk -F '{print $1,$2,$3,$4,$5,$6,$8,$9,$10,$11,$7}',OFS= "$file" $ fileはディレクトリ内の.csvファイルです。ただし、出力は awk: ^ syntax error 誰でもこのエラーを修正する方法を知っていますか?

7
/ *および* /を含む/ *…* /に該当するすべての文字を削除するにはどうすればよいですか?
私はsedとawkを試しましたが、文字には区切り文字としてコマンドに既に存在する「/」が含まれるため、動作しません。 これを達成する方法を教えてください。 以下にサンプルの例を示します。コメントされたセクションを削除します。 /*.....*/ /*This is to print the output data*/ proc print data=sashelp.cars; run; /*Creating dataset*/ data abc; set xyz; run;

4
特定の行番号にテキストを挿入する
行のデータに応じてテキストドキュメントの内容を分割するbashスクリプトに取り組んでいます。 元のファイルの内容が次の行に沿っていた場合 01 line 01 line 02 line 02 line bashを使用してこのファイルの3行目に挿入するにはどうすればよいですか 01 line 01 line text to insert 02 line 02 line 私はヒアドキュメントまたは私のスクリプトに似たものを使用してこれを行うことを望んでいます #!/bin/bash vim -e -s ./file.txt <<- HEREDOC :3 | startinsert | "text to insert\n" :update :quit HEREDOC 上記はもちろん機能しませんが、このbashスクリプトに実装できる推奨事項はありますか?

4
最後にコメントされた行から「foo」のある行までのすべての行をコメントします
テキストファイルを考えますusers.txt。 #alice #bob charlie dotan eric 最後のコメント行(包括的)から(包括的)までのすべてをコメントする必要がありdotanます。これが結果です: #alice #bob #charlie #dotan eric sedこれを行うための素敵なワンライナーはありますか?ただのツールだけsedでなく、本当に満足しています。 現在、最後にコメントされた行の行番号を取得しています: $ cat -n users.txt | grep '#' | tail -n1 2 #bob 私はそれを追加してコメントしsedます: $ sed -i'' '3,/dotan/ s/^/#/' users.txt 私は賢く、これをいくつかと一緒にputいbcワンライナーにまとめることができることを知っています。確かにきれいな方法があるはずですか?

7
特定の長さを超えるファイル内の行を識別する方法
コード内で特定の長さを超える行を見つけたいのですが。私のコードは複数のファイルにあります。これを行う良い方法は何ですか? ファイルと行番号を知りたい。コンテンツが優先されますが、必須ではありません。演習の目的は、(おそらく手動で)行を分割する方法を理解することです。

6
行ブロックの並べ替え
4n行を含むファイルがあります。これは、8行を含む抜粋です 6115 8.88443 6116 6.61875 6118 16.5949 6117 19.4129 6116 6.619 6117 16.5979 6118 19.4111 6115 8.88433 私がやりたいのは、ブロックをソートすることです。各ブロックは、最初の列に基づいて4行で構成されています。抜粋の出力は次のようになります。 6115 8.88443 6116 6.61875 6117 19.4129 6118 16.5949 6115 8.88433 6116 6.619 6117 16.5979 6118 19.4111

4
いくつかの追加の制約を使用してファイルをランダムにシャッフルします
私には巨大な音楽プレイリストがあり、多くのアルバムを持っているアーティストもいれば、1曲しか持っていないアーティストもいます。プレイリストを並べ替えて、同じアーティストが連続して2回再生しないようにしたり、プレイリストの最初または最後に彼の曲がほとんど収まらないようにしました。 プレイリストの例: $ cat /tmp/playlist.m3u Anna A. - Song 1 Anna A. - Song 2 I--Rock - Song 1 John B. - Song 1 John B. - Song 2 John B. - Song 3 John B. - Song 4 John B. - Song 5 Kyle C. - Song 1 U--Rock …

2
ASCIIファイルの列を揃える
彼のようなテキストファイルがあります。 #c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 4599 995,274 2523,658 264,1417170 -33,6000 -0,3600 0,0202 0,0069 0,0227 10,1041 0,0169 0,2817 0,0239 6173 1552,290 1595,696 264,0603912 -33,4880 0,4374 0,0287 1,8123 0,0385 10,1289 0,0292 2,8445 0,0366 6456 1658,630 1529,292 264,0449377 -33,4800 0,0109 0,0234 1,0955 0,0296 10,5032 …

4
awkまたはsedで最初の列で行を連結します
awk次の状況でどのように使用できますか? 同じ列で始まる行を連結します。結合後は最初の列のみが保持されます(この場合aaaはwww、、hhh)。 ファイルはスペースまたはタブで区切られます。 入力例: aaa bbb ccc ddd NULL NULL NULL aaa NULL NULL NULL NULL NULL NULL aaa bbb ccc NULL NULL NULL NULL www yyy hhh NULL NULL NULL NULL hhh 111 333 yyy ooo hyy uuuioooy hhh 111 333 yyy ooo hyy NULL 望ましい出力: aaa bbb ccc …

8
無制限の列の交換
列のあるファイルがあります。例については、以下を参照してください。 a b c ... z 1 2 3 ... 26 最初の列が最後になり、2番目の列が最後になる前の列になるように、すべての列を交換したい...など z y x ... a 26 25 24 ... 1 これを行う1つのライナー(awkまたはsed)がありますか?列が数列しかないときに 使用できることは知っawkていますが、数千列のファイルでこれを実行できるようにしたいと思います。 tacこれを行に対して完全に行います。 列に相当するものを探していると思います。 rev コラム内のコンテンツも入れ替えるため、私には役に立たなかった。

2
空のセルが見つからない場合にコンソールでTSV(csv)を表示する方法: `column -t -s $ '\ t'`
の列が含まれるファイルがありますtab。 一部の行に空のセルがある場合(開始時、中間)にファイルがあります。 そのような場合、column -t -s $'\t'単に失敗します: 入力: $ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv $ hexdump -C in.tsv 00000000 41 09 42 09 43 09 44 0a 09 62 31 09 09 64 31 0a |A.B.C.D..b1..d1.| 00000010 09 09 09 64 32 0a 61 33 09 09 09 64 33 0a …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.