aaaaaaaa 09
bbbbbbbb 90
ccccccccccccccc 89
ddddd 09
上記のテキストのsed/awk/replaceを使用して、各行の最初のスペースの後にあるものをすべて削除します。たとえば、出力は次のようになります。
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
任意の助けをいただければ幸いです。
Sed
sed 's/\s.*$//'
グレップ
grep -o '^\S*'
Awk
awk '{print $1}'
コメントで指摘されているように、-o
はPOSIXではありません。しかしGNUとBSDの両方にあるので、ほとんどの人にとってはうまくいくはずです。
また、\s
/\S
がすべてのシステムに存在しない場合があります。システムで認識されない場合は、リテラルスペースを使用できます。スペースとタブが必要な場合は、角かっこ式([...]
)、または[[:blank:]]
文字クラス(厳密に言えば、\s
は[[:space:]]
と同等であり、CR、LFと同様に垂直間隔の文字が含まれることに注意してくださいあなたがおそらく気にしないVT)。
awk
は、行が空白文字で始まっていないことを前提としています。
cut -d ' ' -f 1 < your-file
最も効率的です。
awk '{print $1}' file
または
sed 's/ .*//'
そしてPerl
を介して
$ Perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
GNU grep、
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd