web-dev-qa-db-ja.com

bash、コロンの前に文字列を抽出

このような行を持つファイルがある場合

/some/random/file.csv:some string
/some/random/file2.csv:some string2

コロンの前に最初の部分のみがあるファイルを取得する方法はありますか?.

/some/random/file.csv
/some/random/file2.csv

Bash one linerを使用したいだけですが、Perlまたはpythonも使用できます。

34
user788171
cut -d: -f1

または

awk -F: '{print $1}'

または

sed 's/:.*//'
62
ray

別の純粋なBASH方法:

> s='/some/random/file.csv:some string'
> echo "${s%%:*}"
/some/random/file.csv
37
anubhava

これを純粋なbashで試してください:

FRED="/some/random/file.csv:some string"
a=${FRED%:*}
echo $a

ここ は役立つドキュメントです。

17
Mark Setchell

別の純粋なBashソリューション:

while IFS=':' read a b ; do
  echo "$a"
done < "$infile" > "$outfile"
1
Fritz G. Mehner

これは何度も尋ねられているので、1000ポイントを超えるユーザーがこれを求めるのは奇妙です
しかし、別の方法を示すためだけに:

echo "/some/random/file.csv:some string" | awk '{sub(/:.*/,x)}1'
/some/random/file.csv
0
Jotne