だから最初のコロンまですべてを削除したいテキストファイルがあります。たとえば、これが入力の場合
0000007ba9ec6950086ce79a8f3a389db4235830:9515rfsvk
000000da2a12da3fbe01a95bddb8ee183c62b94d:letmein2x
000000edf3179a1cf4c354471a897ab7f420bd52:heychudi:rbhai
000000f636f0d7cbc963a62f3a1bc87c9c985a04:cornetti
0000010a15f5b9315ef8e113f139fa413d1f2eb2:3648067PY128
それからこれを出力する必要があります
9515rfsvk
letmein2x
heychudi:rbhai
cornetti
3648067PY128
3行目の2番目のコロンはそのまま残り、各行の先頭から最初の列までの位置のみを削除する必要があります。
grepまたはawkを使用してこれを行う簡単な方法はありますか?
答え1
そしてcut
cut -d: -f2- file
-d
-f2-
2番目のフィールドから最後のフィールドまでの区切り記号と平均を設定します。
答え2
sedを使用してください:
sed 's/[^:]*://' input.txt
つまり、ゼロ個以上の非コロン文字と、その後にコロンが続く順序を一致させ、何も置き換えません。
答え3
これはgrep
(PCRE)と組み合わせて使用できます。
grep -Po "(?<=:).*" file
出力:
9515rfsvk
letmein2x
heychudi:rbhai
cornetti
3648067PY128
答え4
最初の項目が:
常にファイルの41番目の場所にある場合は、次のものを使用できます。
colrm 1 41 <file
または
cut -c42- file
列の位置を最初に決定する必要があるため、最も便利なオプションではありませんが、少なくとも区切り文字なしで動作します。