标签: cut

使用CUT和Quartile在R函数中生成中断

根据之前的一些很好的建议,我现在正在编写我的第二个R函数并使用类似的逻辑.但是,我正在尝试自动化一点,并且可能为了自己的利益而变得过于聪明.

我想根据订单数量将客户分成五分位数.这是我的代码:

# sample data
clientID <- round(runif(200,min=2000, max=3000),0)
orders <- round(runif(200,min=1, max=50),0)

df <- df <- data.frame(cbind(clientID,orders))

#function to break them into quintiles
ApplyQuintiles <- function(x) {
  cut(x, breaks=c(quantile(df$orders, probs = seq(0, 1, by = 0.20))), 
      labels=c("0-20","20-40","40-60","60-80","80-100"))
}

#Add the quintile to the dataframe
df$Quintile <- sapply(df$orders, ApplyQuintiles)
Run Code Online (Sandbox Code Playgroud)

table(df$Quintile)

0-20   20-40   40-60    60-80   80-100 
40     39      44       38      36
Run Code Online (Sandbox Code Playgroud)

你会在这里看到,在我的样本数据中,我创建了200个观察值,但只列出了197个table.剩下的3个是NA

现在,有一些对于五分位数具有"NA"的clientID.看起来如果他们处于最低休息时间,在这种情况下为1,那么他们就不会被包括在切割功能中.

有没有办法cut包容所有观察?

cut r

20
推荐指数
3
解决办法
4万
查看次数

用于从播放列表下载youtube文件的Shell脚本

我正在尝试编写一个bash脚本,它将从播放列表中下载所有YouTube视频,并根据youtube视频本身的标题将它们保存为特定的文件名.到目前为止,我有两个独立的代码片段,可以完成我想要的但我不知道如何将它们组合在一起作为一个单元.

这段代码可以找到给定页面上所有YouTube视频的标题:

curl -s "$1" | grep '<span class="title video-title "' | cut -d\> -f2 | cut -d\< -f1
Run Code Online (Sandbox Code Playgroud)

这段代码将文件下载到youtube视频ID给出的文件名(例如,youtube.com/watch?v = CsBVaJelurE&feature = relmfu 提供的文件名为CsBVaJelurE.flv)

curl -s "$1" | grep "watch?" | cut -d\" -f4| while read video; 
do youtube-dl "http://www.youtube.com$video";
done
Run Code Online (Sandbox Code Playgroud)

我想要一个脚本,将youtube .flv文件输出到由视频标题(在本例中为BASH课程2.flv)给出的文件名,而不仅仅是视频ID名称.在此先感谢所有的帮助.

bash shell cut download youtube-dl

19
推荐指数
1
解决办法
3万
查看次数

除最后两个令牌外,Unix裁减

我正在尝试解析特定目录中的文件名.文件名的格式为:

token1_token2_token3_token(N-1)_token(N).sh
Run Code Online (Sandbox Code Playgroud)

我需要使用分隔符来剪切标记'_',并且除了最后两个标记之外需要使用字符串.在上面的检查输出应该是token1_token2_token3.

令牌数量不固定.我已尝试使用命令-f#-选项cut,但没有找到任何解决方案.有任何想法吗?

unix linux bash cut token

19
推荐指数
3
解决办法
1万
查看次数

我可以删除 awk 中的字段吗?

这是test.txt

0x01,0xDF,0x93,0x65,0xF8
0x01,0xB0,0x01,0x03,0x02,0x00,0x64,0x06,0x01,0xB0
0x01,0xB2,0x00,0x76
Run Code Online (Sandbox Code Playgroud)

如果我运行 awk -F, 'BEGIN{OFS=","}{$2="";print $0}' test.txt 结果是:

0x01,,0x93,0x65,0xF8
0x01,,0x01,0x03,0x02,0x00,0x64,0x06,0x01,0xB0
0x01,,0x00,0x76
Run Code Online (Sandbox Code Playgroud)

$2 没有被删除,它只是变空了。我希望在打印 $0 时,结果是:

0x01,0x93,0x65,0xF8
0x01,0x01,0x03,0x02,0x00,0x64,0x06,0x01,0xB0
0x01,0x00,0x76
Run Code Online (Sandbox Code Playgroud)

awk cut sed

19
推荐指数
3
解决办法
1116
查看次数

削减命令换行

我有这样一个文件:

one
two 
three 
four
Run Code Online (Sandbox Code Playgroud)

我想在bash脚本中使用for循环来扫描文件行以获取行.以前我用过cut但是我无法给cut命令换行分隔符,我该怎么办?

这样它不起作用:

cut -d'\n' -f1
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

bash cut

18
推荐指数
2
解决办法
5万
查看次数

是否可以在unix cut命令中使用字符串作为分隔符?

如果我想使用字符串作为分隔符来剪切文本列表,那可能吗?例如,我有一个目录,其中shell脚本列表调用相同的perl脚本说

abc.pl
Run Code Online (Sandbox Code Playgroud)

所以,当我这样做

$grep abc.pl * 
Run Code Online (Sandbox Code Playgroud)

在该目录中,它给了我以下结果

xyz.sh: abc.pl 1 2
xyz2.sh: abc.pl 2
mno.sh: abc.pl 3
pqr.sh: abc.pl 4 5
Run Code Online (Sandbox Code Playgroud)

我基本上想要"abc.pl"之后的所有输出(以检查现在传递给perl的范围参数)

当我尝试

$grep abc.pl * | cut -d'abc.pl' -f2
Run Code Online (Sandbox Code Playgroud)

要么

$grep abc.pl * | cut -d'abc\.pl' -f2
Run Code Online (Sandbox Code Playgroud)

它给了我

cut: invalid delimiter
Run Code Online (Sandbox Code Playgroud)

当我读人为切,它说

delim可以是多字节字符.

我在做什么/解释错了?

unix utilities cut

17
推荐指数
3
解决办法
4万
查看次数

尾巴-f到grep切成不正常

我正在尝试构建一个shell脚本来监视一些日志文件.我正在使用这样的命令:

tail -f /var/somelog | grep --line-buffered " some test and p l a c e h o l d e r" | cut -f 3,4,14 -d " "
Run Code Online (Sandbox Code Playgroud)

日志文件如下:

some test and p l a c e h o l d e r 3
some test and p l a c e h o l d e r 4
some test and p l a c e h o l d e r 5
some test and p l …
Run Code Online (Sandbox Code Playgroud)

bash shell grep cut tail

17
推荐指数
1
解决办法
8395
查看次数

从shell脚本中的每一行获取前5个字符

这是我的sample.txt文件,它包含以下内容

31113    70:54:D2 - a-31003
31114    70:54:D2 - b-31304
31111    4C:72:B9 - c-31303
31112    4C:72:B9 - d-31302
Run Code Online (Sandbox Code Playgroud)

我必须编写shell脚本,因为我将前5个字符(例如31113)作为输入id传递给其他脚本.为此我试过这个

#!/bin/sh
filename='sample.txt'
filelines=`cat $filename`
while read -r line
do
  id= cut -c-5 $line
  echo $id
  #code for passing id to other script file as parameter
done < "$filename"
Run Code Online (Sandbox Code Playgroud)

但它不起作用这给了我错误

cut: 31113: No such file or directory
cut: 70:54:D2 No such file or directory
31114
31111
31112
: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

linux bash shell cut sh

17
推荐指数
3
解决办法
5万
查看次数

如何获取释放值?

我有一个具有以下名称格式的文件:

rzp-QAQ_SA2-5.12.0.38-quality.zip
rzp-TEST-5.12.0.38-quality.zip
rzp-ASQ_TFC-5.12.0.38-quality.zip
Run Code Online (Sandbox Code Playgroud)

我想要的值为:5.12.0.38-quality.zip来自上面的文件名。

我尝试如下,但没有得到正确的值:

echo "$fl_name" | sed 's#^[-[:alpha:]_[:digit:]]*##'
Run Code Online (Sandbox Code Playgroud)

fl_name是包含文件名的变量。

预先非常感谢!

regex grep cut sed

17
推荐指数
3
解决办法
454
查看次数

剪切命令将选项卡指定为分隔符

当我使用命令时,有一个文件,分隔符是tab

cut -d \t file.txt  #or  "\t"  or  "\\t"
Run Code Online (Sandbox Code Playgroud)

我收到这条消息

cut:您必须指定字节,字符或字段的列表

尝试`cut --help'获取更多信息.

如何使用cut 命令?

shell cut

15
推荐指数
2
解决办法
6万
查看次数

标签 统计

cut ×10

bash ×5

shell ×4

grep ×2

linux ×2

sed ×2

unix ×2

awk ×1

download ×1

r ×1

regex ×1

sh ×1

tail ×1

token ×1

utilities ×1

youtube-dl ×1