问题标签 [ifs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 根据空行或任何未使用的字符将文本文件拆分为数组
我有一个文本文件,其中包含由空文本行分隔的文本行。我想将该文件的内容推送到一个数组中,并使用空行作为分隔符。我尝试了 IFS="\n" (或 "\r\n" 等。)但无法让它工作,所以我想我会用不在文件中的字符替换任何空行,所以我拿起了西班牙倒置问号 (\xBF)
这样就行了,我有一个字符,我将用它来分割我的文件并将其放入一个数组中。(有点随机技巧,但嘿,这只是一种方法..)
现在我需要更改 $IFS 以便它使用倒置的问号来分割数组的数据。
如果我输入
在命令行中它工作得很好
但是,如果我键入带有尾随 read -a 的命令,那么它什么也不做:
这很奇怪,因为 $var 有一个值。
更令人惊讶的是,当我在得到以下信息后立即验证 IFS 的值时:
这是 IFS 的默认值。
我很确定 IFS 可以使用任何字符,不是吗?
或者,如果您有任何技巧可以根据空行拆分数组中的文件,我很感兴趣!(为了理解起见,我仍然想深入了解这一点)。
非常感谢,周末愉快:)
bash - 在 shell 中拆分名称文件
我在这里知道如何拆分由 ls 命令找到的文件名:D。让我解释得更好...
我有一个变量
然后我想拆分搜索结果,因为我只想要 .img 之前的名称,所以一个好主意是使用 IFS。
IFS=. read -r disk <<< $image
非常好,但是当用 $disk 变量做一个回显时,我看到的是一个“.img”,我想恢复那个点之前的位置。
谢谢大家,如有错误请见谅:)
bash - 以空字符分隔的命令行参数
由于文件名可能包含空格和换行符\n
,我使用空字符作为字段分隔符。但我不知道怎么说find
输入目录是空字符分隔的。
我失败的尝试:
如何判断find
输入目录用零分隔?
shell - 如何在 KornShell (ksh) 中正确保存 IFS
我正在尝试在 KornShell (ksh) 脚本中修改它之前保存我的 IFS。我发现备份变量没有被正确保存,所以我写了一个简单的脚本来重现这个问题。
当我回显 OIFS 时,我期望看到的内容与回显 IFS 时相同,后者是空格 (040)、制表符 (011) 和换行符 (012) 的八进制 ascii 值。但是,这是输出:
请注意,IFS 变量的输出包含所有三个字符,而 OIFS 的输出仅包含换行符 (012)。我看过的每个论坛都表明这是创建 IFS 副本的方法。有谁知道为什么 OIFS 没有正确设置?我也尝试用双引号将 $IFS 括起来,但得到了相同的结果:
我在 AIX6 上运行。
bash - shell - 临时 IFS 仅作为换行符。为什么这不起作用: IFS=$(echo -e '\n')
我试图for
在 shell 中使用空格来迭代文件名。我读了一个可以使用的stackoverflow问题,IFS=$'\n'
而且似乎工作正常。然后,我在评论中阅读了一个答案,以使其 posix 与 bash 以外的 shell 兼容,可以使用IFS=$(echo -e '\n')
.
前者有效,但后者无效。这条评论被点赞了好几次。我检查了输出,变量似乎不包含换行符。
输出显示第一个字段分隔符缺失:
但在第二个方面是正确的:
我发现了一个已回答的问题,它可能与我的问题重复,也可能不重复:
linux - 当设置 IFS 以换行符拆分时,为什么需要包含退格键?- 堆栈溢出
做那里讨论的事情有什么危险IFS=$(echo -en '\n\b')
吗?因为这增加了\b
IFS (我检查过)。可以\b
在文件名中出现吗?我不希望我的代码错误地拆分文件名。
另外,您对如何在for
循环后正确处理 IFS 恢复有任何建议吗?我应该将它存储在临时变量中,还是在子shell中运行 IFS 和 for 语句?(以及如何做到这一点?)谢谢
c++ - 循环和 if 的流程中的逻辑不正确
所以我试图找到 pat.txt 中最低的年份和 don.txt 中的最高年份:
帕特.txt
唐.txt
代码如下:
然后感兴趣的代码:
目前我得到最高的患者和最低的供体(2010-2009),我需要获得(2003-2013)
我觉得其中一个执行相等的 if 语句中的逻辑是不正确的。目前它正在寻找最高的患者和最低的捐赠者。我必须翻转它们。花了几个小时试图弄清楚这一点,如果有人能看到我的错误,我将不胜感激。我确定这是一个愚蠢的小错误,但对于我的生活,我就是找不到它
unix - 在 unix 中通过 system() 设置 IFS
我试图了解 IFS 如何使用我编写的这个简单代码。但这不起作用,有人能解释为什么这不起作用吗?
根据上面的代码,命令 '/bin/date' 应该被分成 2 个命令,如 'bin' 和 'date',但这并没有发生。
bash - 试图将字符串拆分为两个变量
我正在尝试将字符串拆分为两个变量(无需使用 while 循环):
但我没有得到想要的结果:
有人可以解释一下是否可以这样做(或类似的方式)?
bash - 使用 IFS bash 解析 CSV:选择“;” 作为分隔符
我有一个 130 列的 CSV,我需要用它做 3 个 csv。我正在循环一段时间和 IFS,因为我需要对每一行的变量做一些事情。
这是我所做的:
但是我在某些行上有问题,因为我收到的原始 csv 是这样的:
如您所见,我有一个问题;在一个值。IFS 将其读取为两个值的分离。所以这是我的问题:有没有办法采取“;” 作为分隔符,而不仅仅是 ; ?
bash - 使用 IFS= 防止前导空格被忽略
我试图在 xml 文件中的特定行之前插入几行。虽然它正在工作,但格式没有保留。前导空格被忽略。我知道我们必须使用 IFS= 并且除了许多其他链接之外,我还在以下链接中进行了交叉检查,但无济于事。:(
谁能指出我在这里犯的错误?
数据文件:
配置.xml:
输出: