- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
mccli dataset show --recursive \
| awk -F"/" '!/^Dataset.*Domain|^0,23000|^----|^$/ {print $2"/"$1}' \
| while read dataset
do
echo $dataset
mccli dataset show --name="$dataset" | grep -i "freezemethod:value=none"
done
它在其中一台 Linux 机器上工作。当我将相同的脚本复制到其他 Linux 时。我收到以下错误。 (我在 vi 编辑器中插入后粘贴).
./freezemethod: line 2: syntax error near unexpected token `|'
'/freezemethod: line 2: `| awk -F"/" '!/^Dataset.*Domain|^0,23000|^----|^$/ {print $2"/"$1}' \
最佳答案
检查以确保第 1 行末尾的 \
后面没有 字符(空格、制表符等)。如果它确实后面有字符,它不会被视为续行,第 2 行将被视为新命令,引发类似什么的错误你看到了:
./freezemethod: line 2: syntax error near unexpected token '|'
最好的检查方法是运行转储命令,例如:
od -xcb ./freezemethod | head -30l
并检查文件前两行的二进制信息,不起作用的那一行。
作为确认,以下文件testprog.sh
:
echo hello \
| cut -c1-2
当使用bash testprog.sh
运行时,将输出hello
的前两个字符:
he
如果您在 \
之后放置一个空格字符,您将看到:
hello
testprog.sh: line 2: syntax error near unexpected token '|'
testprog.sh: line 2: '| cat'
echo
工作正常没有 过滤器(输出完整的单词),并且单独的命令导致问题,因为它以 |
开头.
而且,根据您在评论中发布的内容,问题正是我所描述的。您生成的 od
命令(我添加到最后一行):
root@w2ran0301:/tmp/#: od -xcb ./freezemethod | head -30l
0000000 636d 6c63 2069 6164 6174 6573 2074 6873
m c c l i d a t a s e t s h
155 143 143 154 151 040 144 141 164 141 163 145 164 040 163 150
0000020 776f 2d20 722d 6365 7275 6973 6576 5c20
o w - - r e c u r s i v e \
157 167 040 055 055 162 145 143 165 162 163 151 166 145 040 134
0000040 0a0d 207c 7761 206b 462d 2f22 2022 2127
^^^^
0a0d
序列(你必须倒过来读)实际上是一个 CR/LF
序列,这意味着你的第一行是:
mccli dataset show --recursive \^M
(^M
代表行尾的 CR)。
这意味着在\
和行尾之间是一个字符,所以\
正在转义它 而不是充当行继续符。
有许多选项可用于从文件中删除这些 CR 字符,例如 this answer 中所示的选项。 .
一种方法是先备份文件:
cp freezemethod freezemethod-cr
然后使用该备份文件重新创建原始没有回车符:
sed 's/\r$//' freezemethod-cr >freezemethod
这应该会为您提供一个具有正确行尾的 freezemethod
。
关于linux - ./freezemethod : line 2: syntax error near unexpected token `|' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29160116/
当前问题陈述的输入是 - 输入.txt #START_OF_TEST_CASES #DATA key1:VA1 key2:VA2 key3:VA3 key4:VA4 key5:VA5 #DEND #E
编辑:添加了 PDO 调用。 这是实际的错误: Notice: Object of class PDOStatement could not be converted to int in Unknow
“git diff --stat”和“git log --stat”显示如下输出: $ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56
我有一个具有以下格式的输入文件:安大略省:布兰普顿:北纬 43° 41':西经 79° 45'安大略省:多伦多:北纬 43° 39':西经 79° 23'魁北克省:蒙特利尔:北纬 45° 30':西经
空白行仅包含\n或\r\n或\r。 tempfile = open(file,"r") for id,line in enumerate(tempfile): if(line != "\n"
我尝试使用 BABYLON.js 开发棋盘游戏我有一个板子和一个 ArcRotateCamera。 我的灯是 HemisphericLight 当我在板上画线时,我希望这些线具有相同的外观。现在,当我
我尝试使用 BABYLON.js 开发棋盘游戏我有一个板子和一个 ArcRotateCamera。 我的灯是 HemisphericLight 当我在板上画线时,我希望这些线具有相同的外观。现在,当我
有一个while read循环: while read line; do grep "^$line" file1 done < target 我应该使用 "^$line" 来获得正确答案。我想
我有一个我无法解决的 numpy 问题。我有填充 0 和 1 的 3D 数组 (x,y,z)。例如,z 轴上的一个切片: array([[1, 0, 1, 0, 1, 1, 0, 0],
作为临时方法,我使用 .txt 文件来存储程序的某些变量。写入与 fs.appendFile 完美配合,但考虑到它的大小,使用 fs.readFile 读取不合适 - 我想得到某一行 来自文件,以及
我试图找到一种通过R studio进行调试的方法,但是我发现的所有解决方案都无法真正起作用。 1.)CTRL + enter:有效,但不会通过循环的每次迭代,而只能执行一次。 2.)添加“browse
在我的应用程序中,我的 EditText 左侧有行号 - 到目前为止一切都很好,行号与 EditText 的行完全对齐。 问题是,如果用户更改 EditText 的文本大小,则行号无法正确对齐。所以我
通过使用 + 的参数调用它,我可以使 vim 将光标定位在文件的最后一行。 : vi + myfile # "+" = go to last line of file 我怎样才能做到
我已经在文件中写入了这样的数据(某种) {:a 25 :b 28} {:a 2 :b 50} ... 我想要这些 map 的惰性序列。 大约有 4000 万行。我也可以写 10000 的 block
我在文本区域中发现了一个奇怪的错误(?)... 比如说,有一个 使用多行文本(用户粘贴的文本或预设文本无关紧要,两者都经过测试)。 我想从 中获取文本并替换 \n与其他东西......结果是,.re
我需要一个新行,这样我就可以在 PFD 中看到一个格式,我尝试添加一个页面宽度但它没有用,我用另一个东西/n 也没有用。这是我的代码。我可以手动添加格式,因为我需要显示从数据库中获取的信息,并且我在一
我正在尝试编写一个 Java 程序,它将大量 GPS 坐标捕捉到线形文件(道路网络),并且不仅返回新坐标,还返回捕捉到的线段的唯一标识符。该标识符是否是 FID、其他语言中使用的“索引”(即,其中 1
你好,我正在努力处理 JavaScript/NodeJS 中的数组。 基本上,这是我的代码: let arr = new Array(); arr = { "Username" : var1,
我正在学习 matplotlib 的基本教程,我正在处理的示例代码是: import numpy as np import matplotlib.pylab as plt x=[1,2,3,4] y=
所以,假设我有一个包含 20 行的文本文件,每行都有不同的文本。我希望能够有一个包含第一行的字符串,但是当我执行 NextLine(); 时我希望它成为下一行。我试过了,但它似乎不起作用: strin
我是一名优秀的程序员,十分优秀!