だから私の入力は次のようになります。
1,somerandomwordsx,some.random.words,random.numbers.word,random
2,somerandoms,random,randomnumber,
1,randomwords,word1,word2,word3
21,randomwords,words.random,unique.word,more.random.words
111,randomword1,random.word2
出力は次のようになります。
1,somerandomwordsx,some.random.words,random.numbers.word,random
1,randomwords,word1,word2,word3
awk、grep、sedで多くを試しましたが、カンマを無視するか、「111」を含むすべての「1」一致を含めます。最初の列に正確な数字1の行のみを保存する必要があります。 。
助けてくれてありがとう!
答え1
使用awk
:
$ awk -F , '$1 == 1' file
1,somerandomwordsx,some.random.words,random.numbers.word,random
1,randomwords,word1,word2,word3
awk
各行をカンマ区切りのフィールドセットとして読み取ることができます。上記のコードは、$1
最初のフィールド()を持つすべての行を印刷します1
。
使用sed
:
$ sed '/^1,/!d' file
1,somerandomwordsx,some.random.words,random.numbers.word,random
1,randomwords,word1,word2,word3
$ sed -n '/^1,/p' file
1,somerandomwordsx,some.random.words,random.numbers.word,random
1,randomwords,word1,word2,word3
使用grep
:
$ grep '^1,' file
1,somerandomwordsx,some.random.words,random.numbers.word,random
1,randomwords,word1,word2,word3
withsed
とを使用すると、「行の先頭に文字があり、その後にカンマが続きます」をgrep
意味する正規表現を使用できます。式を行の先頭に固定してコンマを後ろに一致させることで、または等で始まる行が一致するのを回避できます。^1,
1
^
1
11
12
最初のsed
バリアントはパターンと一致しないすべての行を削除し、他のバリアントはパターンに一致する行のみを印刷します。効果は同じです。