我在目录中有多个文本文件,并希望将每个文件的行数相互比较。
下面是我的代码,但是输出不正确;无论行数多少,它总是向我显示“更大”。
for f in *.txt; do
for f2 in *.txt; do
if [ "wc -l $f" > "wc -l $f2" ]; then
echo bigger;
fi;
done;done
我不确定[ "wc -l $f" > "wc -l $f2" ]
是否正确。
答案 0 :(得分:0)
双引号引入一个字符串,它们不运行附带的命令。 bulkRequest := client.Bulk()
for j := 0; j < 20; j++ {
n++
tweet := Tweet{User: "Rudi", Message: "This is the new from string representations of basic data types. " + strconv.Itoa(n)}
req :=
elastic.NewBulkIndexRequest().Index("employee").Type("tweet").Id(strconv.Itoa(n)).Doc(tweet)
bulkRequest.Add(req)
}
bulkResponse, err := bulkRequest.Do(context.Background())
中的>
比较字符串而不是数字,并且需要反斜杠,否则它将被解释为重定向。此外,当文件大小相同时(例如,当$ f == $ f1时),您希望得到什么输出?
[ ... ]
答案 1 :(得分:0)
这是您想要的:
#!/bin/bash
N=0
M=0
for line in $( find . -type f -name \*.sh ); do
N=$( wc -l ${line} | cut -d" " -f1 )
FILE=$( wc -l ${line} | cut -d" " -f2 )
if [[ ${M} < ${N} ]]; then
M=${N}
BIGFILE=${FILE}
echo "GOTCHA : ${M}"
fi
done
echo "BIG FILE: ${BIGFILE} ( ${M} lines )"