use*_*171 39 string bash substring sed
如果我有一个像这样的行的文件
/some/random/file.csv:some string
/some/random/file2.csv:some string2
Run Code Online (Sandbox Code Playgroud)
有没有办法获得一个只有冒号之前的第一部分的文件,例如
/some/random/file.csv
/some/random/file2.csv
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用bash one liner,但perl或python也可以.
ray*_*ray 68
cut -d: -f1
Run Code Online (Sandbox Code Playgroud)
要么
awk -F: '{print $1}'
Run Code Online (Sandbox Code Playgroud)
要么
sed 's/:.*//'
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 47
另一种纯粹的BASH方式:
> s='/some/random/file.csv:some string'
> echo "${s%%:*}"
/some/random/file.csv
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 20
在纯粹的bash中尝试这个:
FRED="/some/random/file.csv:some string"
a=${FRED%:*}
echo $a
Run Code Online (Sandbox Code Playgroud)
这是一些有用的文档.
这对我有用,你们可以尝试一下
INPUT='ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash'
SUBSTRING=$(echo $INPUT| cut -d: -f1)
echo $SUBSTRING
Run Code Online (Sandbox Code Playgroud)
这个问题已经被问了很多次了,以至于一个超过 1000 分的用户问这个问题有点奇怪
,但只是为了展示另一种方法:
echo "/some/random/file.csv:some string" | awk '{sub(/:.*/,x)}1'
/some/random/file.csv
Run Code Online (Sandbox Code Playgroud)